Can't collapse FAQ's
-
I’ve got the plugin working great, and have a page setup as follows:
FAQ 1
[hs-faq-cat id=”6″]FAQ 2
[hs-faq-cat id=”7″]FAQ 3
[hs-faq-cat id=”8″]When I click on a question it expands to show the answer, however I can’t click on the question again to hide/collapse it again. I can only do this when clicking on another question.
How can I do this?
Chris.
-
Hello,
Yes, plugin is develop with this functionality only, you have to click other question to close previous.
You can change the core code (which will be overwritten by updates) to fix this. It takes two seconds. Hopefully the plugin author will make this quick fix and push out an update.
File: hs-simple-faq.php
Change line ~188 from:
echo ‘<input id=”ac-‘ . $i . ‘” name=”accordion-1″ type=”radio” />’;to :
echo ‘<input id=”ac-‘ . $i . ‘” name=”accordion-1″ type=”checkbox” />’;The checkbox allows you to select and deselect, radio buttons don’t.
To clarify, “core code” refers to core of the plugin, not WP.
You also need to edit this file (Has 2 spots): front-end.php
With the same changes…I didn’t and it works fine. Can’t understand why the developer hasn’t added this option.
Ok that is strange as I updated it with only the one change and it did not work. Then I added the additional changes and it worked fine.
Hmmm. I can try to check it tomorrow. I haven’t used this plugin in a while. Maybe the last update changed it.
I modified front-end.php and it works now. I hope the author will implement it and the plugin will be more usable.
<?php $i = 1; //Get Terms $terms = get_terms("hs_faq_taxomomy"); $count = count($terms); if ($count > 0) { echo '<section class="hs-faq-container">'; foreach ($terms as $term) { echo '<div>'; echo '<input id="ac-' . $i . '" name="accordion-1" type="radio" />'; echo '<label for="ac-' . $i . '">' . $term->name . '</label>'; // QUERY ARGS $query = new WP_Query(array( 'post_type' => $post_type, 'posts_per_page' => $posts_per_page, 'orderby' => $orderby, 'order' => $order, 'no_found_rows' => 1, 'tax_query' => array( array( 'taxonomy' => 'hs_faq_taxomomy', 'field' => 'slug', 'terms' => $term ) ) ) ); while ($query->have_posts()) : $query->the_post(); $title = get_the_title(); echo '<article class="ac-small">'; echo '<div class="hs-faq-qustion">' . $title . '</div>'; the_content(); echo '</article>'; ?> <?php endwhile; echo '</div>'; $i++; } echo '</section>'; } //If Admin Has Not Created or Selected Any Category in Backend else { $query = new WP_Query(array( 'post_type' => $post_type, 'posts_per_page' => $posts_per_page, 'orderby' => $orderby, 'order' => $order, 'no_found_rows' => 1 ) ); echo '<section class="hs-faq-container">'; // Loop while ($query->have_posts()) : $query->the_post(); $i = get_the_ID(); echo '<div>'; $title = get_the_title(); echo '<input id="ac-' . $i . '" name="accordion-1" type="checkbox" />'; echo '<label for="ac-' . $i . '">' . $title . '</label>'; echo '<article class="ac-small">'; the_content(); echo '</article>'; echo '</div>'; endwhile; echo '</section>'; } wp_reset_query(); ?>
I also modified a little hs-simple-faq.php but it should work with default one too. In case you need it here is it:
<?php /** * Plugin Name: HS Responsive Category FAQ * Plugin URI: https://heliossolutions.in/ * Description: Hs simple and responsive faq plugin is the simplest wordpress responsive faq plugin. * Version: 3.0.3 * Author: Helios Solutions * Author URI: https://heliossolutions.in/ */ $plugin_url = WP_PLUGIN_URL . '/hs-simple-faq'; $options = array(); /* Activate the plugin. */ register_activation_hook(__FILE__, 'hsfaq_plugin_activate'); function hsfaq_plugin_activate() { hs_faq_post_type(); hs_faq_post_taxomomy(); } /* Delete options on Uninstalling the plugin. */ function hsfaq_uninstall() { delete_option( 'hscss_settings' ); } register_uninstall_hook( __FILE__, 'hsfaq_uninstall' ); /* Add submenu of HS FAQ post type.*/ add_action('admin_menu', 'hsfaq_settings'); /* Add submenu of HS FAQ Post type. */ function hsfaq_settings() { add_submenu_page( 'edit.php?post_type=hs_faq', __( 'HS FAQ Settings', 'hsfaq' ), __( 'Settings', 'hsfaq' ), 'manage_options', 'hsfaq-settings', 'hsfaq_settings_page' ); } /* * Register Custom Post Type - HS Simple FAQ * */ function hs_faq_post_type() { $labels = array( 'name' => _x('FAQ\'s', 'post type general name'), 'singular_name' => _x('FAQ', 'post type singular name'), 'add_new' => _x('Add New', 'faq'), 'add_new_item' => __('Add New FAQ'), 'edit_item' => __('Edit FAQ'), 'new_item' => __('New FAQ'), 'all_items' => __('All FAQ\'s'), 'view_item' => __('View FAQ'), 'search_items' => __('Search FAQ'), 'not_found' => __('No FAQ\'s found'), 'not_found_in_trash' => __('No FAQ\'s found in the Trash'), 'parent_item_colon' => '', 'menu_name' => 'FAQ\'s' ); $args = array( 'labels' => $labels, 'description' => 'Holds our faq\'s and faq specific data', 'public' => true, 'menu_position' => 5, 'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'), 'has_archive' => true, ); register_post_type('hs_faq', $args); } add_action('init', 'hs_faq_post_type'); /* * Register Custom Taxonomy - FAQ Categories * */ function hs_faq_post_taxomomy() { $labels = array( 'name' => _x('FAQ Categories', 'taxonomy general name'), 'singular_name' => _x('FAQ Category', 'taxonomy singular name'), 'search_items' => __('Search FAQ Categories'), 'all_items' => __('All FAQ Categories'), 'parent_item' => __('Parent FAQ Category'), 'parent_item_colon' => __('Parent FAQ Category:'), 'edit_item' => __('Edit FAQ Category'), 'update_item' => __('Update FAQ Category'), 'add_new_item' => __('Add New FAQ Category'), 'new_item_name' => __('New FAQ Category'), 'menu_name' => __('FAQ Categories'), ); $args = array( 'labels' => $labels, 'hierarchical' => true, ); register_taxonomy('hs_faq_taxomomy', 'hs_faq', $args); } add_action('init', 'hs_faq_post_taxomomy', 0); /* Load CSS and Javascript for plugin */ function hsfaq_frontend_scripts_and_styles() { wp_enqueue_style('main-style', plugins_url('hs-simple-faq/inc/css/hs-faq.css')); } add_action('wp_enqueue_scripts', 'hsfaq_frontend_scripts_and_styles'); /* * Add [hs-faq limit="-1"] shortcode * */ function hs_faq_shortcode($atts, $content = null) { extract(shortcode_atts(array( "limit" => '' ), $atts)); // Define limit if ($limit) { $posts_per_page = $limit; } else { $posts_per_page = '-1'; } ob_start(); // Create the Query $post_type = 'hs_faq'; $orderby = 'post_date'; $order = 'ASC'; //Load the frontend require( 'inc/front-end.php' ); // Reset query to prevent conflicts return ob_get_clean(); } add_shortcode("hs-faq", "hs_faq_shortcode"); /* * Add [hs-faq-cat id="id"] shortcode * */ function hs_faq_shortcode_cat($atts, $content = null) { extract(shortcode_atts(array( "id" => '' ), $atts)); // get cat id if ($id) { $term_id = $id; } ob_start(); // Create the Query $post_type = 'hs_faq'; $orderby = 'post_date'; $order = 'DESC'; $query = new WP_Query(array( 'post_type' => $post_type, 'posts_per_page' => -1, 'orderby' => $orderby, 'order' => $order, 'no_found_rows' => 1, 'tax_query' => array( array( 'taxonomy' => 'hs_faq_taxomomy', 'terms' => $term_id ) ) ) ); //Get post type count $post_count = $query->post_count; if ($post_count > 0) : // Displays FAQ info echo '<section class="hs-faq-container">'; // Loop while ($query->have_posts()) : $query->the_post(); $i = get_the_ID(); echo '<div>'; $title = get_the_title(); echo '<input id="ac-' . $i . '" name="accordion-1" type="radio" />'; echo '<label for="ac-' . $i . '"><i class="fa fa-question"></i>' . $title . '</label>'; echo '<article class="ac-small">'; the_content(); echo '</article>'; echo '</div>'; endwhile; echo '</section>'; endif; // Reset query to prevent conflicts wp_reset_query(); return ob_get_clean(); } add_shortcode("hs-faq-cat", "hs_faq_shortcode_cat"); /** * Enqueue link to add CSS through PHP */ function hsfaq_register_style() { wp_register_style( 'hscss_style', '/?hscss=1' ); wp_enqueue_style( 'hscss_style' ); } add_action( 'wp_enqueue_scripts', 'hsfaq_register_style', 99 ); /** * Add Query Var Stylesheet trigger */ function hscss_add_trigger( $vars ) { $vars[] = 'hscss'; return $vars; } add_filter( 'query_vars','hscss_add_trigger' ); /** * If trigger (query var) is tripped, load our pseudo-stylesheet */ function hscss_trigger_check() { if ( intval( get_query_var( 'hscss' ) ) == 1 ) { ob_start(); header( 'Content-type: text/css' ); $options = get_option( 'hscss_settings' ); $raw_content = isset( $options['hscss-content'] ) ? $options['hscss-content'] : ''; $esc_content = esc_html( $raw_content ); $content = str_replace( '>', '>', $esc_content ); echo $content; exit; ob_clean(); } } add_action( 'template_redirect', 'hscss_trigger_check' ); /** * Register settings */ function hscss_register_settings() { register_setting( 'hscss_settings_group', 'hscss_settings' ); } add_action( 'admin_init', 'hscss_register_settings' ); function hsfaq_settings_page() { $options = get_option( 'hscss_settings' ); $content = isset( $options['hscss-content'] ) ? $options['hscss-content'] : ''; if ( isset( $_GET['settings-updated'] ) ) : ?> <div id="message" class="updated"><p><?php _e( 'Custom CSS updated successfully.' ); ?></p></div> <?php endif; require( 'inc/hs-faq-option-page.php' ); } ?>
Helios, would be great if you could get this added. Would make your great plugin even greater ??
Hello pixelkicks,
Thank you for your suggestion, we try to implement in next update version.
- The topic ‘Can't collapse FAQ's’ is closed to new replies.