Skip links

Agregue XSLT a RSS | Kiriska

De alguna manera me acaba de olvidar XSL

Debo haberlo sabido en algún momento, tal vez fue mi primera vez Xml. Luego, rápidamente lo olvidé, tal vez porque no tenía un propósito especial en ese momento y fue un poco problemático escribir.

Pero estoy trabajando ahora.

Raramente escribo artículos técnicos. ¡Ojalá esto sea relativamente digerible porque creo que es útil!

RSS sin XSL

Si hace clic en un enlace RSS Alimentarse en la mayoría de los navegadores, obtienes algo como esto:

Este es el feed RSS Etiqueta de «redes sociales» Antes de agregar XSL, en el blog, en el blog. Use la alimentación oscura para las capturas de pantalla, ya que aún no se ha reproducido, jajaja.

El Feed RSS es solo un archivo XML. XML es solo una forma de organizar y construir datos envolviéndolo en varias etiquetas.

El XML crudo es feo y no se puede ver. Necesitas copiar Url El contenido de la alimentación y agréguelo a su lector de feed para que sea útil; Su lector de feed procesará los datos y presentará los datos de una manera más legible. Cuando obtienes lo que parece el código, no es necesariamente obvio que deba dar ese paso (poner el feed en el lector de alimentos).

Yo abogo RSS En todopero en gran medida Renunciar a las redes socialessiéntete más necesario Extender la voz.

Los enlaces a los alimentos RSS en la mayoría de los navegadores, porque el XML crudo ha sido molesto durante mucho tiempo. Peor aún, algunos navegadores (¡Firefox!) descargar XML como un archivo misterioso: el extra inútil y potencialmente impactante. Este es un gran obstáculo cuando la mayoría de la gente ni siquiera sabe qué es RSS, y mucho menos cómo usarlo/seguirlo.

XSL es una forma de peinar y usar archivos XML como páginas legibles por humanoses importante que incluya la alimentación RSS.

RSS con XSL

Que es esto El resumen anterior (y La mayoría de los otros feeds En el sitio web) ahora en el navegador, con XSL:

Ahora use la alimentación XSL. (Debería actualizar el color del enlace en la hoja de estilo …)

¡mejor! Ahora parece una página normal y perfecta.

El archivo RSS/XML en sí tiene solo una línea:

<?xml-stylesheet href="https://kiriska.com/blog/2025/adding-xslt-to-rss/(PATH TO)/rss.xsl" type="text/xsl"?>

Esto enlaza a archivos XSL, la mayoría de los cuales tienen solo HTML y CSS normales, además de algún código específico de XSL que extrae datos del archivo XML para mostrar en la página HTML.

este Hermosa plantilla RSS XSL Matt Webb parece ser la base de la mayoría de las otras plantillas. Darek Kay Lo ajustó aquí Utilizado para alimentación atómica.

Para los sitios que no son de letras, después de crear un archivo de plantilla XSL (y cualquier CSS asociado), si puede acceder directamente al archivo de generación RSS, simplemente le agrega una línea LIL. completo. Simple.

XSL para WordPress

Para WordPress, si no le importa mucho el estilo de los alimentos RSS, entonces siempre que estén diseñando, Hermoso complemento RSS Hacer el trabajo. El complemento contiene algunas personalizaciones de color básicas y le permite elegir si mostrar/ocultar los comentarios de los intérpretes RSS en la parte superior Acerca de Feeds.com.

Sin embargo, quiero modificar los comentarios y tener opciones para una mayor personalización. Puede hacerlo modificando el complemento directamente, pero en lugar de usar el complemento, lo quité y modifiqué las plantillas XSL y actualicé las plantillas de alimentación a través del tema para incluirlas.

WordPress tiene Archivo de plantilla única Para varias especificaciones de alimentación (RSS, RSS2, átomos). La modificación de los archivos WP de Core directamente no es ideal, pero afortunadamente, actualizar o sobrescribir alimentos predeterminados es muy simple. Solo necesita hacer esto para cada especificación de alimentación. Personalmente, solo me preocupa RSS2 (predeterminado) y los átomos.

Agregue XSL a la plantilla predeterminada

La forma más fácil de incluir XSL en un archivo de plantilla de alimentación WP para agregar una línea que XSL contiene es a través de rss_tag_pre gancho. Gritar Este artículo de Frank Meeuwsen¿Qué único ejemplo puedo encontrar para usar este gancho? Por supuesto, se trata de hacer lo mismo que hacemos aquí.

(Lo sentimos, el marco de contraseña aquí no está en buen formato; no escribo tales artículos técnicos a menudo y no puedo garantizar una premonición de ellos).

Inserte una fila de XSL incluida en su salida RSS, agrégela al tema funciones.php:

function add_xsl(){
   if(is_feed()){
   echo '<?xml-stylesheet href="'. get_stylesheet_directory_uri() .'/rss.xsl' . '" type="text/xsl"?>';
   }
}
add_action('rss_tag_pre', 'add_xsl');

Si desea actualizar RSS y Atom Feed:

function add_xsl(){
   if(is_feed('atom')){
   echo '<?xml-stylesheet href="'. get_stylesheet_directory_uri() .'/atom.xsl' . '" type="text/xsl"?>';
   } else if(is_feed()) { echo '<?xml-stylesheet href="'. get_stylesheet_directory_uri() .'/rss.xsl' . '" type="text/xsl"?>';}
}
add_action('rss_tag_pre', 'add_xsl');

Anulación de plantilla predeterminada

También puede reemplazar toda la plantilla de alimentación con la suya (para cada especificación de alimentación).

Voy por esta ruta porque en algún momento quiero actualizar el resto de la plantilla de alimentación para poder hacer cosas como incluir datos de clasificación postal en la salida para que pueda ver qué categorías y etiquetas que pongo en las publicaciones del lector de feeds.

Sobrescribir plantillas en el tema funciones.php:

function my_custom_rss() {
get_template_part( 'feed', 'rss2' );
}
remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'my_custom_rss');

function my_custom_atom() {
get_template_part( 'feed', 'atom' );
}
remove_all_actions( 'do_feed_atom' );
add_action( 'do_feed_atom', 'my_custom_atom');

Esto le indica a WordPress que busque y use un archivo llamado feed-rss2.php y feed-atom.php En tu carpeta de temas.

Crea tu plantilla de alimentación personalizada:

Simplemente copie la plantilla predeterminada de WP al mismo nombre de archivo que /wp contiene /wp en su carpeta de tema. Para incluir XSL, la única actualización que necesita en el archivo de plantilla es agregar:

echo '<?xml-stylesheet href="'.get_template_directory_uri() .'/filename.xsl" type="text/xsl"?>';

Debajo del existente

echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>';

Crea tu archivo de plantilla XSL

Ya sea que inserte solo una línea de XSL incluida en la plantilla de alimentación predeterminada o reemplace por completo la plantilla de alimentación, también debe crear un archivo XSL y cualquier CSS. Estos se pueden colocar en su carpeta de tema.

Dado que sobrescribo tanto RSS2 como Atom Feeds, necesito dos archivos XSL, uno para cada tipo de alimentación (usan una sintaxis diferente), por lo que rss.xsl y atom.xsl.

Referencias a ambos pretty-rss.cssaunque un obstáculo que enfrento es CSS que no se representa correctamente si no especifico una ruta absoluta desde el archivo XSL.

Aunque todos los archivos están en la misma carpeta, si el archivo XSL solo hace referencia href="https://kiriska.com/blog/2025/adding-xslt-to-rss/pretty-rss.css"CSS no se puede representar correctamente en el archivo RSS/XML final. Tengo que especificar manualmente toda la ruta del archivo, en mi caso href="https://kiriska.com/wp/wp-content/themes/dovovo/pretty-rss.css". No puede usar las funciones de WP PHP get_template_directory_uri() En un archivo XSL.

No tengo la energía para desenterrar por qué se necesitan caminos absolutos. Sin una ruta absoluta, CSS se representa correctamente en el archivo XSL en sí, en lugar de usar RSS/XML de ese XSL. Esto podría ser estúpido y específico de WP. No es importante para mí pasar tiempo en ello.

De todos modos, sí.

¡El enlace a mi feed RSS se ve bien ahora en el navegador y también puede hacer que su feed se vea bien!

alegría Este artículo Para recordarme XSLT (entre otras cosas), y Este artículo Se usa para vincular a eso.

Ok, está bien, actualicé el color del enlace y agregué la flor de fondo. Esto es Alimento principal de la versión atómica.

Sobre el autor

Kiri es un artista, escritor, webmaster y entusiasta de la pluma con sede en Seattle con más de 15 años de experiencia en sesiones de venta y eventos, así como muchas opiniones.

Leave a comment

Home
Account
Cart
Search
¡Hola! ¡Pregúntame lo que quieras!
Explore
Drag