¿Cómo agregar una imagen destacada o un campo personalizado a la fuente xml?

2

Ya probé los complementos RSS Manager, Agregar imagen destacada a RSS y Imagen destacada en RSS. Pero todo lo que hacen es agregar la imagen dentro del atributo <description> del feed xml.

Hay al menos 2 problemas con eso:

  • El blog que está tirando de la fuente trunca el <description> en unos 300 caracteres, lo que está bien.
  • El blog que está tirando de las etiquetas html de las tiras de alimentación. Tengo que eliminarlos porque si hay una imagen dentro del cuerpo del mensaje, se mostrará. Entonces, si hay dos imágenes al principio de la publicación, las mostrará y también mostrará la imagen destacada. Además, la etiqueta img consumirá caracteres del límite de 300 caracteres.

Por lo tanto, necesito generar la fuente RSS xml con el atributo agregado <featuredimage> o <thumbnail> o algo así. NO incrustado dentro de <description> .

He buscado complementos pero no puedo encontrar ninguno que resuelva este problema. Gracias de antemano.

    
pregunta leonel 22.05.2013 - 20:47

3 respuestas

3

El feed RSS2 se genera en el archivo wp-includes/feed-rss2.php . En este archivo, hay un gancho de acción llamado rss2_item . Puedes usar este enlace de acción para agregar etiquetas a cada elemento de tu feed.

Hay un artículo de códice sobre rss2_item con ejemplos, incluido este para agregar <image> etiqueta:

<?php
add_action('rss2_item', 'add_my_rss_node');

function add_my_rss_node() {
    global $post;
    if(has_post_thumbnail($post->ID)):
        $thumbnail = get_attachment_link(get_post_thumbnail_id($post->ID));
        echo("<image>{$thumbnail}</image>");
    endif;
}
?>
    
respondido por el Ben Miller 09.09.2013 - 07:04
1

Código de trabajo:

add_action('rss2_item', 'custom_thumbnail_tag');

function custom_thumbnail_tag() {

    global $post;
    if(has_post_thumbnail($post->ID)):
        $thumbnail_ID = get_post_thumbnail_id( $post->ID );
        $thumbnail = wp_get_attachment_image_src($thumbnail_ID, 'thumbnail');
        echo("<thumbnail>{$thumbnail['0']}</thumbnail>");
    endif;

}
    
respondido por el Bhupen 26.09.2017 - 12:39
0

Estoy intentando hacer lo mismo. Un par de recursos que he estado viendo hasta ahora:

Primero aprende la sintaxis y estructura RSS válidas. Sintaxis de etiquetas RSS2.0

Cree una página oculta en Wordpress para crear su propio diseño y llame a todos los campos e imágenes que desee. Contenido de RSS personalizado de Yoast

    
respondido por el reidelliott 19.07.2013 - 23:22

Lea otras preguntas en las etiquetas