J'essaie d'étendre un flux RSS pour sortir du post-méta de mon site web.
J'ai une méta-clé 'event_date' et j'ai besoin de commander par ceci, par opposition à la date de publication standard RSS, ce que je sais faire si je peux obtenir cette information.
J'utilise le code suivant, qui utilise les crochets d'action Wordpress disponibles dans les flux RSS. Cependant, lorsque j'utilise ces points d'ancrage, les flux signalent qu'aucun élément n'a été trouvé. Sans eux, les éléments sont trouvés, mais bien sûr, je ne peux pas les commander à la demande.
Est-ce que je fais quelque chose de mal dans la façon dont je sors dans le flux RSS?
/**
* Adds the 'event_date' meta value to a feed
*/
add_action('atom_entry', 'add_event_date_to_feed');
add_action('rdf_item', 'add_event_date_to_feed');
add_action('rss_item', 'add_event_date_to_feed');
add_action('rss2_item', 'add_event_date_to_feed');
function add_event_date_to_feed(){
global $post;
$event_date_raw = get_post_meta($post->ID, 'event_date', true);
if($event_date_raw && $event_date_raw !== '') :
$date_object = DateTime::createFromFormat('D, d M Y H:i:s +0000', $event_date_raw);
$event_date = $date->format('U');
else :
$event_date = '';
endif;
printf("\t\t".'<eventDate>%1$s</eventDate>'."\n", $event_date);
}
WordPress utilise SimplePie pour lire des flux, pas pour générer des flux. Vous regardez ici deux choses différentes:
La première partie est assez facile. WordPress prend en charge les modèles de flux RSS personnalisés . En réalité, vous pouvez remplacer le flux RSS standard par un autre personnalisé comprenant votre méta de publication personnalisé.
En ce qui concerne consommer les données personnalisées, c'est assez simple. SimplePie lira le flux RSS et créera un objet de fil incluant tout ce qui se trouvait dans le fichier XML. Travaillez-y simplement comme n'importe quel autre objet.