WordPress viene con una fuente RSS predeterminada incorporada. Puede ajustar la fuente predeterminada agregando contenido personalizado a su fuente RSS, o incluso agregando miniaturas de publicaciones a su fuente 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 servir tipos específicos de contenido. En este artículo, le mostraremos cómo crear un feed RSS personalizado en WordPress.

Tenga en cuenta que este tutorial no está destinado a usuarios principiantes de WordPress. Si es un principiante pero aún quiere probarlo, instálelo localmente.

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

Habiendo dicho eso, comencemos con nuestra primera fuente RSS personalizada en WordPress.

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

  • título
  • asociación
  • fecha de lanzamiento
  • autor
  • extracto

Lo primero que tienes que hacer es en el sujeto functions.php archivo o en un complemento específico del sitio:


add_action('init', 'customRSS');
function customRSS(){
        add_feed('feedname', 'customRSSFunc');
}

El código anterior activa customRSS función, que añade el feed. La función add_feed toma dos parámetros, 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. Tome nota del nombre del feed, ya que lo necesitará más adelante.

Después de inicializar el feed, debe crear una función de devolución de llamada con el siguiente código en el tema para generar el feed deseado functions.php archivo o complemento específico del sitio:

function customRSSFunc(){
        get_template_part('rss', 'feedname');
}

El código anterior está usando get_template_part Las funciones están vinculadas a archivos de plantilla separados, pero también puede colocar el código RSS directamente en las funciones.mediante el uso get_template_part, podemos separar la funcionalidad del diseño.Esta get_template_part La función tiene dos argumentos, slug y nombre, y buscará archivos de plantilla con nombres del siguiente formato, empezando por el archivo de arriba (si no encuentra el primero, pasará al segundo, y antes ):

  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 propósitos de este tutorial, es mejor establecer el slug en el tipo de fuente que está creando (en este caso: rss) y establecer el nombre en el nombre de la fuente que configuró anteriormente.

Una vez que le diga a WordPress que busque una plantilla de fuente, debe crearla. El siguiente código generará el diseño del feed utilizando la información que enumeramos anteriormente.Guarde este archivo en su carpeta de temas como archivo de plantilla config slug-name.php get_template_part Características.

<?php
/**
 * Template Name: Custom RSS Template - Feedname
 */
$postCount = 5; // The number of posts to show in the feed
$posts = query_posts('showposts=" . $postCount);
header("Content-Type: '.feed_content_type('rss-http').'; charset=".get_option("blog_charset'), true);
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
?>
<rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:wfw="http://wellformedweb.org/CommentAPI/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:atom="http://www.w3.org/2005/Atom"
        xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
        xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
        <?php do_action('rss2_ns'); ?>>
<channel>
        <title><?php bloginfo_rss('name'); ?> - Feed</title>
        <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
        <link><?php bloginfo_rss('url') ?></link>
        <description><?php bloginfo_rss('description') ?></description>
        <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
        <language><?php echo get_option('rss_language'); ?></language>
        <sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
        <sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
        <?php do_action('rss2_head'); ?>
        <?php while(have_posts()) : the_post(); ?>
                <item>
                        <title><?php the_title_rss(); ?></title>
                        <link><?php the_permalink_rss(); ?></link>
                        <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
                        <dc:creator><?php the_author(); ?></dc:creator>
                        <guid isPermaLink="false"><?php the_guid(); ?></guid>
                        <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
                        <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
                        <?php rss_enclosure(); ?>
                        <?php do_action('rss2_item'); ?>
                </item>
        <?php endwhile; ?>
</channel>
</rss>

Este código de plantilla generará una fuente RSS en el diseño anterior.Esta postCount Las variables le permiten controlar la cantidad de publicaciones que se mostrarán en su feed. La plantilla se puede modificar según sea necesario para mostrar cualquier información que necesite (por ejemplo, publicar imágenes, comentarios, etc.).

Esta the_excerpt_rss La función mostrará un extracto de cada artículo y, para los artículos sin extracto, mostrará las primeras 120 palabras del contenido del artículo.

Finalmente, para mostrar su feed, primero debe actualizar sus reglas de reescritura de WordPress.La forma más fácil es iniciar sesión en su administrador de WordPress y hacer clic en Configuración -> Enlaces permanentesUna vez aquí, simplemente haga clic en Guardar cambios, lo que actualizará las reglas de reescritura.

Ya puedes acceder a tu nuevo feed yourdomain.com/feed/feedname, donde feedname es tu add_feed función antes.

W3C proporciona un servicio de validación de feeds que le permite validar los feeds generados.

Solución de problemas

  • ¡Mi feed no está verificado!
    • Con el validador de feeds W3C, se deben proporcionar detalles específicos cuando el feed no esté validado.Edite el archivo de plantilla de fuente para resolver estos problemas
  • recibí ¡Error de validacion!
    • Esto es común cuando el idioma RSS no está configurado en su instalación de WordPress.Para hacer esto, puede agregar el siguiente código a su tema functions.php archivo para actualizar las opciones de idioma.
    function rssLanguage(){
            update_option('rss_language', 'en');
    }
    add_action('admin_init', 'rssLanguage');
    
  • Edite el segundo parámetro de la función update_option para cambiar el idioma al que desee. Vea una lista completa de códigos de idioma RSS.
  • Después de agregar el código anterior a su archivo de funciones, cargue la pantalla de administración de WordPress para que surta efecto. Después de esto, el código debe eliminarse de su archivo de funciones de WordPress. Cargar una vez es suficiente para configurar la configuración de rss_language.
  • Esto también se puede hacer directamente en la base de datos buscando la opción rss_language en la tabla wp_options.
  • Esperamos que este artículo le haya ayudado a crear su propio feed RSS personalizado en WordPress. Háganos saber cómo y por qué utiliza fuentes RSS personalizadas en su sitio de WordPress dejando un comentario a continuación.

    Los datos expuestos en este sitio web son de índole informativo, no necesariamente están actualizados. Esta información es una recopilación de información de internet.