web-dev-qa-db-fra.com

Comment ajouter une image sélectionnée ou un champ personnalisé au flux XML?

J'ai déjà essayé les plugins RSS Manager, Ajouter l'image sélectionnée au flux RSS et à l'image sélectionnée dans flux RSS. Mais tout ce qu'ils font est d'ajouter l'image dans l'attribut <description> du flux XML.

Il y a au moins 2 problèmes avec ça:

  • Le blog qui tire le fil tronque le <description> à environ 300 caractères, ce qui est correct.
  • Le blog qui tire les étiquettes HTML de bandes de flux. Je dois les décaper parce que s'il y a une image dans le corps du message, elle l'affichera. Donc, s'il y a deux images au début de la publication, il les affichera et affichera également l'image sélectionnée. En outre, la balise img engloutira des caractères de la limite de 300 caractères.

J'ai donc besoin de générer le flux RSS XML avec l'attribut ajouté <featuredimage> ou <thumbnail> ou quelque chose du genre. PAS intégré dans <description>.

J'ai cherché des plugins mais je ne trouve aucun qui puisse résoudre ce problème. Merci d'avance.

2
leonel

Le flux RSS2 est généré dans le fichier wp-includes/feed-rss2.php. Dans ce fichier, il existe un hook d’action nommé rss2_item. Vous pouvez utiliser ce crochet d'action pour ajouter des balises à chaque élément de votre flux.

Il y a un article codex sur rss2_item avec des exemples, y compris celui-ci pour ajouter une balise <image>:

<?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;
}
?>
3
Ben Miller

Code de travail:

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;

}
2
Bhupen

J'essaie de faire la même chose. Quelques ressources que j'ai consultées jusqu'à présent:

Commencez par apprendre la syntaxe et la structure de RSS Syntaxe de balise RSS2.0

Créez une page masquée dans Wordpress pour créer votre propre mise en page et appeler tous les champs et images de votre choix. Flux RSS personnalisé Yoast

0
reidelliott