Uma seção de “Perguntas Frequentes” é uma ótima ferramenta para dar a seus clientes a resposta certa para suas perguntas. Isso está se tornando muito popular. Mas muitas vezes as perguntas frequentes são integradas ao tema premium, mas e os temas gratuitos? Aqui está um tutorial para criar um plugin de FAQ simples que funcionará com qualquer tema. Este tutorial cobrirá apenas as etapas básicas para que você possa personalizar a seção de perguntas frequentes e torná-la sua!
Etapa 1: criar o plug-in
Para começar, crie uma nova pasta em sua pasta “wp-content/plugins” chamada “rc-faq”. Em seguida, crie um novo arquivo dentro desta pasta chamado “rc-faq.php” e coloque este código:
<?php
/*
Plugin Name: RC Faq
Plugin URL: http://remicorson.com/rc-faq
Description: A simple FAQ plugin
Version: 1.0
Author: Remi Corson
Author URI: http://remicorson.com
Contributors: corsonr
*/
Etapa 2: registrar o tipo de postagem personalizada de perguntas frequentes
Agora precisamos registrar um tipo de postagem personalizado. Se você não estiver familiarizado com esta parte, você pode dar uma olhada no Codex .
/*
* Register CPT rc_faq
*
*/
function rc_faq_setup_post_types() {
$faq_labels = apply_filters( ‘rc_faq_labels’, array(
‘name’ => ‘FAQs’,
‘singular_name’ => ‘FAQ’,
‘add_new’ => __(‘Add New’, ‘rc_faq’),
‘add_new_item’ => __(‘Add New FAQ’, ‘rc_faq’),
‘edit_item’ => __(‘Edit FAQ’, ‘rc_faq’),
‘new_item’ => __(‘New FAQ’, ‘rc_faq’),
‘all_items’ => __(‘All FAQs’, ‘rc_faq’),
‘view_item’ => __(‘View FAQ’, ‘rc_faq’),
‘search_items’ => __(‘Search FAQs’, ‘rc_faq’),
‘not_found’ => __(‘No FAQs found’, ‘rc_faq’),
‘not_found_in_trash’ => __(‘No FAQs found in Trash’, ‘rc_faq’),
‘parent_item_colon’ => ”,
‘menu_name’ => __(‘FAQs’, ‘rc_faq’),
‘exclude_from_search’ => true
) );
$faq_args = array(
‘labels’ => $faq_labels,
‘public’ => true,
‘publicly_queryable’=> true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘query_var’ => true,
‘capability_type’ => ‘post’,
‘has_archive’ => false,
‘hierarchical’ => false,
‘supports’ => apply_filters(‘rc_faq_supports’, array( ‘title’, ‘editor’ ) ),
);
register_post_type( ‘rc_faq’, apply_filters( ‘rc_faq_post_type_args’, $faq_args ) );
}
add_action(‘init’, ‘rc_faq_setup_post_types’);
Observe o uso da função apply_filters() . Isso permite que você modifique o suporte e os argumentos sem modificar o próprio plug-in.
Etapa 3: crie um código de acesso para exibir as perguntas frequentes
Esta etapa é onde vamos criar um código de acesso simples com apenas um parâmetro que mostrará as perguntas frequentes para o seu visitante. A ideia é listar apenas o título das perguntas frequentes e exibir as respostas apenas quando o título for clicado.
O shortcode terá um parâmetro de “limite” exclusivo que define o número de itens a serem exibidos. Claro que você pode adicionar seus próprios atributos: pedido, pedido por, etc…
Além disso, esse código de acesso contém um snippet de javascript incluído diretamente no próprio código de acesso, para que o javascript seja carregado apenas quando você estiver na página que contém o código de acesso.
Por fim, ocultamos por padrão o conteúdo do FAQ e o exibimos apenas quando seu título é clicado.
/*
* Add [rc_faq limit=”-1″] shortcode
*
*/
function rc_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 = ‘rc_faq’;
$orderby = ‘menu_order’;
$order = ‘ASC’;
$query = new WP_Query( array (
‘post_type’ => $post_type,
‘posts_per_page’ => $posts_per_page,
‘orderby’ => $orderby,
‘order’ => $order,
‘no_found_rows’ => 1
) );
//Get post type count
$post_count = $query->post_count;
$i = 1;
// Displays FAQ info
if ( $post_count > 0) :
// Loop
while ($query->have_posts()) : $query->the_post(); ?>
<h3 class=”rc_faq_title”><a href=”#” onclick=”rc_faq_toggle(‘rc_faq_<?php echo get_the_ID(); ?>’);”><?php the_title(); ?></a></h3>
<p id=”rc_faq_<?php echo get_the_ID(); ?>” style=”display: none;”><?php echo get_the_content(); ?></p>
<?php
$i++;
endwhile;
endif;
// Reset query to prevent conflicts
wp_reset_query(); ?>
<script type=”text/javascript”>
<!–
function rc_faq_toggle(id) {
var e = document.getElementById(id);
e.style.display = ((e.style.display!=’none’) ? ‘none’ : ‘block’);
}
//–>
</script>
<?php
return ob_get_clean();
}
add_shortcode( “rc_faq”, “rc_faq_shortcode” ); ?>
E é isso !
O resultado final
Aqui está o resultado final na administração:
E do lado dos visitantes:
Isso é simples, mas funciona e você pode personalizá-lo como quiser! Espero que tenham gostado deste tutorial, adoraria receber seus comentários na seção de comentários!