Cómo crear fuentes RSS personalizadas en WordPress

WordPress viene con canales RSS predeterminados integrados. Puede ajustar las fuentes predeterminadas agregando contenido personalizado a sus fuentes RSS, o incluso agregando una miniatura de publicación a sus fuentes RSS. Las fuentes RSS y Atom predeterminadas son suficientes para la mayoría de los usuarios, pero es posible que desee crear una fuente RSS personalizada para entregar un tipo específico de contenido. En este artículo, le mostraremos cómo crear canales RSS personalizados en WordPress.


Tenga en cuenta que este tutorial no está destinado a usuarios principiantes de WordPress. Si es un principiante y todavía quiere probarlo, hágalo en una instalación local..

Como siempre, debe crear una copia de seguridad completa de su sitio web de WordPress antes de realizar cambios importantes en un sitio web en vivo.

Dicho esto, comencemos con su primer feed RSS personalizado en WordPress.

Supongamos que desea crear una nueva fuente RSS que muestre solo la siguiente información:

  • Título
  • Enlace
  • Fecha de Publicación
  • Autor
  • Extracto

Lo primero que debe hacer es crear la nueva fuente RSS en el archivo functions.php de su tema o en un complemento específico del sitio:

add_action (‘init’, ‘customRSS’);
función customRSS () {
add_feed (‘feedname’, ‘customRSSFunc’);
}

El código anterior activa la función customRSS, que agrega el feed. La función add_feed tiene dos argumentos, feedname y una función de devolución de llamada. El nombre del feed formará su nueva URL de feed yourdomain.com/feed/feedname y se llamará a la función de devolución de llamada para crear realmente el feed. Anote el nombre del feed, ya que lo necesitará más adelante..

Una vez que haya inicializado el feed, deberá crear la función de devolución de llamada para producir el feed requerido, utilizando el siguiente código en el archivo functions.php de su tema o en un complemento específico del sitio:

función customRSSFunc () {
get_template_part (‘rss’, ‘feedname’);
}

El código anterior está usando la función get_template_part para vincular a un archivo de plantilla separado, sin embargo, también puede colocar el código RSS directamente en la función. Al usar get_template_part, podemos mantener la funcionalidad separada del diseño. La función get_template_part tiene dos argumentos, slug y name, que buscarán un archivo de plantilla con el nombre en el siguiente formato, comenzando con el archivo en la parte superior (si no encuentra el primero, pasará al segundo , y así):

  1. wp-content / themes / child / rss-feedname.php
  2. wp-content / themes / parent / rss-feedname.php
  3. wp-content / themes / child / rss.php
  4. wp-content / themes / parent / rss.php

Para los fines de este tutorial, es mejor configurar el slug para el tipo de feed que está creando (en este caso: rss) y el nombre del feedset configurado anteriormente en.

Una vez que le haya dicho a WordPress que busque la plantilla de feed, deberá crearla. El siguiente código producirá el diseño para el feed con la información que enumeramos anteriormente. Guarde este archivo en su carpeta de temas como el archivo de plantilla slug-name.php configurado en la función get_template_part.

<?php
/ **
* Nombre de la plantilla: Plantilla RSS personalizada – Nombre del feed
* /
$ postCount = 5; // El número de publicaciones para mostrar en el feed
$ posts = query_posts (‘showposts =’. $ postCount);
header (‘Content-Type:’ .feed_content_type (‘rss-http’). ‘; charset =’. get_option (‘blog_charset’), verdadero);
eco ‘<?versión xml ="1.0" codificación ="’.get_option (‘ blog_charset ‘).’"?’.’>’;
?>
>

<?php bloginfo_rss (‘nombre’); ?> – Alimentar
" rel ="yo" tipo ="aplicación / rss + xml" / />
<?php bloginfo_rss (‘url’) ?>
<?php bloginfo_rss (‘descripción’) ?>
<?php echo mysql2date (‘D, d M Y H: i: s +0000’, get_lastpostmodified (‘GMT’), falso); ?>
<?php echo get_option (‘rss_language’); ?>
<?php echo apply_filters (‘rss_update_period’, ‘cada hora’); ?>
<?php echo apply_filters (‘rss_update_frequency’, ‘1’); ?>
<?php do_action (‘rss2_head’); ?>
<?php while (have_posts ()): the_post (); ?>

<?php the_title_rss (); ?>
<?php the_permalink_rss (); ?>
<?php echo mysql2date (‘D, d M Y H: i: s +0000’, get_post_time (‘Y-m-d H: i: s’, verdadero), falso); ?>
<?php the_author (); ?>
<?php the_guid (); ?>

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    [ware_item id=87][/ware_item]