como crear un plugin en wordpress

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

Aquí te dejamos un tutorial para crear un plugin sencillo de FAQ´s para WordPress que funciona con cualquier tema. 
[post-views]
Compartir:
Facebook
Twitter
LinkedIn
Pinterest
WhatsApp
Telegram
Reddit
AVISO: Esta publicación tiene más de 2 años, así que podría no funcionar en la última versión de WordPress. Compruébalo antes.

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.

Compartir:
Publicado por:
Facebook
Twitter
LinkedIn
WhatsApp
Pinterest
Telegram
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept