Cómo crear un plugin de FAQ’s para tu wordpress

62

pregunta-frecuenteUna sección de “Preguntas Frecuentes” (FAQ’s) es una gran herramienta para dar a sus clientes la respuesta adecuada a sus preguntas. Normalmente las FAQ’s están integradas dentro de los temas premium, y ¿qué pasa con temas libres?

Aquí te dejamos un tutorial para crear una plugin sencillo de FAQ´s que funciona con cualquier tema.  Este tutorial le dará cobertura a unos pasos básicos para que luego se puede personalizar la sección de preguntas frecuentes y adecuarlo a tu gusto!

Premium-WordPress-Plugin

Paso 1: Crear el plugin

Para empezar, cree una nueva carpeta en la carpeta “wp-content/plugins” llamado “mis-faqs“. A continuación, cree un nuevo archivo dentro de la carpeta llamada “mis-faqs.php” y coloque este código:

[php]&lt;?php<br />
/*<br />
Plugin Name: Mis Faqs<br />
Plugin URL: https://ilvwp.com/<br />
Description: Un simple plugin de FAQ's<br />
Version: 1.0<br />A
uthor: WP-Jedi<br />
Author URI: https://ilvwp.com/<br />
*/[/php]

Paso 2: Registre el tipo de entrada personalizada para las FAQ´s

Ahora tenemos que registrar un tipo de entrada personalizada. Si usted no está familiarizado con esta parte, se puede echar un vistazo al Codex. Este código lo debe escribir en el fichero llamado “mis-faqs.php” justo debajo del código anterior.

[php wraplines="yes"]
/*<br /><%%KEEPWHITESPACE%%> * Register CPT mis_faqs<br /><%%KEEPWHITESPACE%%> *<br /><%%KEEPWHITESPACE%%> */<br />function mis_faqs_setup_post_types() {<br /><br /><%%KEEPWHITESPACE%%> $faq_labels = apply_filters( 'mis_faqs_labels', array(<br /><%%KEEPWHITESPACE%%> 'name' =&gt; 'FAQs',<br /><%%KEEPWHITESPACE%%> 'singular_name' =&gt; 'FAQ',<br /><%%KEEPWHITESPACE%%> 'add_new' =&gt; __('Añadir Nuevo', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'add_new_item' =&gt; __('Nuevo Item', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'edit_item' =&gt; __('Editar FAQ', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'new_item' =&gt; __('Nueva FAQ', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'all_items' =&gt; __('Ver Todas', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'view_item' =&gt; __('Ver FAQ', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'search_items' =&gt; __('Buscar FAQs', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'not_found' =&gt; __('No se han encontrado FAQs', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'not_found_in_trash' =&gt; __('No hay FAQs en la papelera', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'parent_item_colon' =&gt; '',<br /><%%KEEPWHITESPACE%%> 'menu_name' =&gt; __('FAQs', 'mis_faqs'),<br /><%%KEEPWHITESPACE%%> 'exclude_from_search' =&gt; true<br /><%%KEEPWHITESPACE%%> ) );<br /><br /><%%KEEPWHITESPACE%%> $faq_args = array(<br /><%%KEEPWHITESPACE%%> 'labels' =&gt; $faq_labels,<br /><%%KEEPWHITESPACE%%> 'public' =&gt; true,<br /><%%KEEPWHITESPACE%%> 'publicly_queryable'=&gt; true,<br /><%%KEEPWHITESPACE%%> 'show_ui' =&gt; true,<br /><%%KEEPWHITESPACE%%> 'show_in_menu' =&gt; true,<br /><%%KEEPWHITESPACE%%> 'query_var' =&gt; true,<br /><%%KEEPWHITESPACE%%> 'capability_type' =&gt; 'post',<br /><%%KEEPWHITESPACE%%> 'has_archive' =&gt; false,<br /><%%KEEPWHITESPACE%%> 'hierarchical' =&gt; false,<br /><%%KEEPWHITESPACE%%> 'supports' =&gt; apply_filters('mis_faqs_supports', array( 'title', 'editor' ) ),<br /><%%KEEPWHITESPACE%%> );<br /><%%KEEPWHITESPACE%%> register_post_type( 'mis_faqs', apply_filters( 'mis_faqs_post_type_args', $faq_args ) );<br /><br />}<br /><br />add_action('init', 'mis_faqs_setup_post_types');[/php]

Ten en cuenta que el uso de la función apply_filters () le permite modificar ciertos argumentos sin modificar el propio plugin.

Paso 3: Crear un Código corto (ShortCode) Para mostrar FAQs

Este paso es donde vamos a crear un shortcode con un solo parámetro que mostrará las preguntas más frecuentes a su visitante. La idea es hacer una lista de títulos y mostrar las respuestas sólo cuando se hace clic en el título.

El shortcode tendrá un parámetro único “límite” que define el número de elementos a mostrar. Además, contiene un fragmento de código JavaScript incluido directamente en el propio código corto para que el javascript sólo cargue cuando se muestre la página que está usando el shortcode.

<br />/*<br />
* Add [mis_faqs limit="-1"] shortcode<br />
*<br />
*/<br />
function mis_faqs_shortcode( $atts, $content = null ) {<br /><br />
<%%KEEPWHITESPACE%%> extract(shortcode_atts(array(<br />
<%%KEEPWHITESPACE%%> "limit" =&gt; ''<br />
<%%KEEPWHITESPACE%%> ), $atts));<br /><br />
<%%KEEPWHITESPACE%%> // Definir el lte<br />
<%%KEEPWHITESPACE%%> if( $limit ) {<br />
<%%KEEPWHITESPACE%%> $posts_per_page = $limit;<br />
<%%KEEPWHITESPACE%%> } else {<br />
<%%KEEPWHITESPACE%%> $posts_per_page = '-1';<br />
<%%KEEPWHITESPACE%%> }<br /><br />
<%%KEEPWHITESPACE%%> ob_start();<br /><br />// Crear la consulta<br />
<%%KEEPWHITESPACE%%> $post_type = 'mis_faqs';<br />
<%%KEEPWHITESPACE%%> $orderby = 'menu_order';<br />
<%%KEEPWHITESPACE%%> $order = 'ASC';<br /><br />
<%%KEEPWHITESPACE%%> $query = new WP_Query( array (<br />
<%%KEEPWHITESPACE%%> 'post_type' =&gt; $post_type,<br />
<%%KEEPWHITESPACE%%> 'posts_per_page' =&gt; $posts_per_page,<br />
<%%KEEPWHITESPACE%%> 'orderby' =&gt; $orderby,<br />
<%%KEEPWHITESPACE%%> 'order' =&gt; $order,<br />
<%%KEEPWHITESPACE%%> 'no_found_rows' =&gt; 1<br />
<%%KEEPWHITESPACE%%> )<br />
<%%KEEPWHITESPACE%%> );<br /><br />
<%%KEEPWHITESPACE%%> // Obtener la cuenta<br />
<%%KEEPWHITESPACE%%> $post_count = $query-&gt;post_count;<br />
<%%KEEPWHITESPACE%%> $i = 1;<br /><br />
<%%KEEPWHITESPACE%%> // Mostrar FAQ info<br />
<%%KEEPWHITESPACE%%> if( $post_count &gt; 0) :<br /><br />
<%%KEEPWHITESPACE%%> // Loop<br />
<%%KEEPWHITESPACE%%> while ($query-&gt;have_posts()) : $query-&gt;the_post();<br />
<%%KEEPWHITESPACE%%> ?&gt;<br /><br />
<%%KEEPWHITESPACE%%> &lt;h3 class="mis_faqs_title"&gt;&lt;
a href="#" onclick="mis_faqs_toggle('mis_faqs_&lt;?php echo get_the_ID(); 
?&gt;');"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h3&gt;<br /><%%KEEPWHITESPACE%%> &lt;p id="mis_faqs_&lt;?php echo get_the_ID(); ?&gt;" style="display: none;"&gt;&lt;?php echo get_the_content(); ?&gt;&lt;/p&gt;<br /><br />&lt;?php<br /><%%KEEPWHITESPACE%%> $i++;<br /><%%KEEPWHITESPACE%%> endwhile;<br /><br /><%%KEEPWHITESPACE%%> endif;<br /><br /><%%KEEPWHITESPACE%%> // Iniciar secuencia para evitar conflicts<br /><%%KEEPWHITESPACE%%> wp_reset_query();<br /><br /><%%KEEPWHITESPACE%%> ?&gt;<br /><%%KEEPWHITESPACE%%> &lt;script type="text/javascript"&gt;<br /><%%KEEPWHITESPACE%%> &lt;!--<br /><%%KEEPWHITESPACE%%> function mis_faqs_toggle(id) {<br /><%%KEEPWHITESPACE%%> var e = document.getElementById(id);<br /><%%KEEPWHITESPACE%%> e.style.display = ((e.style.display!='none') ? 'none' : 'block');<br /><%%KEEPWHITESPACE%%> }<br /><%%KEEPWHITESPACE%%> //--&gt;<br /><%%KEEPWHITESPACE%%> &lt;/script&gt;<br /><%%KEEPWHITESPACE%%> &lt;?php<br /><br /><%%KEEPWHITESPACE%%> return ob_get_clean();<br /><br />}<br /><br />add_shortcode("mis_faqs", "mis_faqs_shortcode");<br />[/php]

Resultado:

Resultado final en la administración:

Crear un plugin de faqs para wordpress - admin

Y del lado de los visitantes:

Como ves es bastante sencillo y funciona, también lo puedes personalizar como quieras, te puede servir incluso para otros usos.

Leave A Reply

¡NO sigas este enlace o serás bloqueado en este sitio!