Cómo crear un plugin de wordpress para una sección de FAQ’s

128

Cómo crear un plugin de FAQ\'s para tu wordpressUna 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!
Cómo crear un plugin de FAQ\'s para tu wordpress

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]
/*
Plugin Name: Mis Faqs
Plugin URL: https://ilvwp.com/
Description: Un simple plugin de FAQ\\'s
Version: 1.0
Author: WP-Jedi
Author URI: https://ilvwp.com/
*/[/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"]
/*
<%%KEEPWHITESPACE%%> * Register CPT mis_faqs
<%%KEEPWHITESPACE%%> *
<%%KEEPWHITESPACE%%> */
function mis_faqs_setup_post_types() {
<%%KEEPWHITESPACE%%> $faq_labels = apply_filters( \\'mis_faqs_labels\\', array(
<%%KEEPWHITESPACE%%> \\'name\\' => \\'FAQs\\',
<%%KEEPWHITESPACE%%> \\'singular_name\\' => \\'FAQ\\',
<%%KEEPWHITESPACE%%> \\'add_new\\' => __(\\'Añadir Nuevo\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'add_new_item\\' => __(\\'Nuevo Item\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'edit_item\\' => __(\\'Editar FAQ\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'new_item\\' => __(\\'Nueva FAQ\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'all_items\\' => __(\\'Ver Todas\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'view_item\\' => __(\\'Ver FAQ\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'search_items\\' => __(\\'Buscar FAQs\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'not_found\\' => __(\\'No se han encontrado FAQs\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'not_found_in_trash\\' => __(\\'No hay FAQs en la papelera\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'parent_item_colon\\' => \\'\\',
<%%KEEPWHITESPACE%%> \\'menu_name\\' => __(\\'FAQs\\', \\'mis_faqs\\'),
<%%KEEPWHITESPACE%%> \\'exclude_from_search\\' => true
<%%KEEPWHITESPACE%%> ) );
<%%KEEPWHITESPACE%%> $faq_args = array(
<%%KEEPWHITESPACE%%> \\'labels\\' => $faq_labels,
<%%KEEPWHITESPACE%%> \\'public\\' => true,
<%%KEEPWHITESPACE%%> \\'publicly_queryable\\'=> true,
<%%KEEPWHITESPACE%%> \\'show_ui\\' => true,
<%%KEEPWHITESPACE%%> \\'show_in_menu\\' => true,
<%%KEEPWHITESPACE%%> \\'query_var\\' => true,
<%%KEEPWHITESPACE%%> \\'capability_type\\' => \\'post\\',
<%%KEEPWHITESPACE%%> \\'has_archive\\' => false,
<%%KEEPWHITESPACE%%> \\'hierarchical\\' => false,
<%%KEEPWHITESPACE%%> \\'supports\\' => apply_filters(\\'mis_faqs_supports\\', array( \\'title\\', \\'editor\\' ) ),
<%%KEEPWHITESPACE%%> );
<%%KEEPWHITESPACE%%> register_post_type( \\'mis_faqs\\', apply_filters( \\'mis_faqs_post_type_args\\', $faq_args ) );

}

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.

/*
* Add [mis_faqs limit="-1"] shortcode
*
*/
function mis_faqs_shortcode( $atts, $content = null ) {
<%%KEEPWHITESPACE%%> extract(shortcode_atts(array(
<%%KEEPWHITESPACE%%> "limit" => \\'\\'
<%%KEEPWHITESPACE%%> ), $atts));
<%%KEEPWHITESPACE%%> // Definir el lte
<%%KEEPWHITESPACE%%> if( $limit ) {
<%%KEEPWHITESPACE%%> $posts_per_page = $limit;
<%%KEEPWHITESPACE%%> } else {
<%%KEEPWHITESPACE%%> $posts_per_page = \\'-1\\';
<%%KEEPWHITESPACE%%> }
<%%KEEPWHITESPACE%%> ob_start();

// Crear la consulta
<%%KEEPWHITESPACE%%> $post_type = \\'mis_faqs\\';
<%%KEEPWHITESPACE%%> $orderby = \\'menu_order\\';
<%%KEEPWHITESPACE%%> $order = \\'ASC\\';
<%%KEEPWHITESPACE%%> $query = new WP_Query( array (
<%%KEEPWHITESPACE%%> \\'post_type\\' => $post_type,
<%%KEEPWHITESPACE%%> \\'posts_per_page\\' => $posts_per_page,
<%%KEEPWHITESPACE%%> \\'orderby\\' => $orderby,
<%%KEEPWHITESPACE%%> \\'order\\' => $order,
<%%KEEPWHITESPACE%%> \\'no_found_rows\\' => 1
<%%KEEPWHITESPACE%%> )
<%%KEEPWHITESPACE%%> );
<%%KEEPWHITESPACE%%> // Obtener la cuenta
<%%KEEPWHITESPACE%%> $post_count = $query->post_count;
<%%KEEPWHITESPACE%%> $i = 1;
<%%KEEPWHITESPACE%%> // Mostrar FAQ info
<%%KEEPWHITESPACE%%> if( $post_count > 0) :
<%%KEEPWHITESPACE%%> // Loop
<%%KEEPWHITESPACE%%> while ($query->have_posts()) : $query->the_post();
<%%KEEPWHITESPACE%%> ?>
<%%KEEPWHITESPACE%%>

< a href=”#” onclick=”mis_faqs_toggle(\\’mis_faqs_\\’);”>

<%%KEEPWHITESPACE%%>
<%%KEEPWHITESPACE%%> $i  ;
<%%KEEPWHITESPACE%%> endwhile;

<%%KEEPWHITESPACE%%> endif;

<%%KEEPWHITESPACE%%> // Iniciar secuencia para evitar conflicts
<%%KEEPWHITESPACE%%> wp_reset_query();

<%%KEEPWHITESPACE%%> ?>
<%%KEEPWHITESPACE%%> 
<%%KEEPWHITESPACE%%> 
<%%KEEPWHITESPACE%%> return ob_get_clean();

}

add_shortcode("mis_faqs", "mis_faqs_shortcode");
[/php]

Resultado:

Resultado final en la administración:
Cómo crear un plugin de FAQ\'s para tu wordpress
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.

close
I Love WordPress isotipo 256

Regístrate para recibir actualizaciones en tu correo.

¡No enviamos spam! Lee nuestra política de privacidad para más información.

También podría gustarte
Cargando...

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

I Love WordPress