Anonim

À un moment donné de votre développement WordPress, vous devrez peut-être fournir à quelqu'un un flux personnalisé. Que ce soit pour fournir une API à quelqu'un ou simplement pour offrir une meilleure expérience à un certain groupe d'utilisateurs, c'est facile à faire.

Je préfère créer un nouveau flux plutôt que d'étendre les flux par défaut car je trouve cette méthode un peu plus simple.

fonction WordPress add_feed

add_filter ('init', 'tj_init_custom_feed'); function tj_init_custom_feed () {// initialise le flux add_feed ('custom-feed', 'tj_custom_feed'); }

Dans votre fichier functions.php de votre thème WordPress, ajoutez le code ci-dessus. Comme il est préférable de ne pas appeler add_feed directement, nous l’ajoutons à travers un filtre sur 'init'. Le premier paramètre de l'appel de fonction est utilisé pour fournir le slug d'URL pour le flux. Le deuxième paramètre est utilisé pour le lier à un nom de fonction. Ainsi, lorsque cette URL est appelée (yourblogurl.com/custom-feed), il exécute la fonction PHP tj_custom_feed.

Veuillez noter que les règles de réécriture pour WordPress doivent être vidées avant que cette URL ne soit correctement reconnue. Un moyen simple et efficace de forcer le vidage des règles consiste à accéder à l'administrateur WordPress -> Paramètres -> Permaliens, puis à cliquer sur le bouton d'enregistrement des modifications.

Produire le XML

Il n’ya vraiment rien de trop complexe dans la sortie du code de flux RSS / XML. Tout d'abord, le type de contenu est défini via la fonction d'en-tête php afin qu'il puisse être restitué correctement. Ensuite, nous récupérons des données de get_posts, les parcourons et les renvoyons à l’écran.

fonction tj_custom_feed () {en-tête ("Type de contenu: text / xml"); echo "\ n"; écho " \ n "; $ posts = get_posts (); foreach ($ posts en tant que $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'complet') ; écho ' '; echo "\ t ". $ post-> ID." \ n "; echo" \ t ". $ post-> post_date." \ n "; echo" \ t ". $ post_link." \ n "; echo" \ t ". esc_html ($ post-> post_title)." \ n "; echo" \ t ". esc_html (strip_tags ($ post-> post_excerpt))." \ n "; echo" \ t ". $ image." "; écho ' '; } écho " "; sortie; }

Création d'un flux wordpress rss / xml personnalisé