Comment ajouter du contenu et manipuler complètement vos flux RSS WordPress
Il y a quelque temps, nous avions expliqué comment contrôler votre pied de page WordPress RSS avec l'utilisation d'un célèbre plugin appelé RSS Footer de Joost. Certes, le plugin est génial, mais il est très limité. Vous pouvez uniquement ajouter du texte au pied de page, et il s'agit toujours du même texte affiché sur le pied de page de chaque message. Que faire si vous souhaitez afficher un texte différent pour chaque message dans votre message RSS? Et si vous voulez que des publications spécifiques aient un titre différent dans les flux RSS? Que faire si vous souhaitez afficher un champ personnalisé spécifique dans vos flux RSS? Voilà pourquoi nous vous présentons cet article qui vous montrera comment ajouter n’importe quel type de contenu dans vos flux RSS WordPress. Ce hack vous mettra sous le contrôle de vos flux RSS WordPress et vous pourrez le manipuler comme bon vous semble.
Note: Ce hack n'est pas pour les débutants. Seuls les utilisateurs qui se sentent à l'aise avec la modification du fichier functions.php et qui connaissent php devraient essayer. Les utilisateurs débutants doivent soit utiliser le plugin mentionné dans l'article ci-dessus, soit consulter des professionnels comme nous pour le faire à votre place..
1. Ajouter un champ personnalisé à votre pied de page WordPress RSS
Dans ce premier exemple, nous allons vous montrer comment utiliser un champ personnalisé pour afficher un texte / un objet spécifique dans votre flux RSS WordPress. Cette astuce vous permettra d'afficher un texte, une publicité, une image ou autre chose différent pour chaque message. Commencez par ouvrir votre fichier functions.php et collez les codes suivants dans les balises php:
fonction wpbeginner_postrss ($ content) global $ wp_query; $ postid = $ wp_query-> post-> ID; $ coolcustom = get_post_meta ($ postid, 'coolcustom', true); if (is_feed ()) if ($ coolcustom! == ") $ content = $ content."
". $ coolcustom." "; else $ content = $ content; return $ content; add_filter ('the_excerpt_rss', 'wpbeginner_postrss'); add_filter ('the_content', 'wpbeginner_postrss');
Maintenant, la plupart d’entre vous se demandent comment fonctionne ce code. Alors voici une explication. Nous créons une fonction appelée wpbeginner_postrss qui exécute une requête wp_query globale pour rechercher dans chaque publication si un champ personnalisé appelé "coolcustom" est défini. Si Cool Custom est défini, il affiche la valeur après le contenu de la publication. Si aucun champ personnalisé n'est défini, la fonction par défaut affiche uniquement le contenu de la publication et rien d'autre. Nous utilisons la variable $ content pour afficher le contenu. Nous utilisons la fonction if (is_feed) et ajoutons le texte personnalisé ou un autre contenu au contenu principal de la publication lui-même, visible par le deuxième filtre. Mais il ne sera affiché que dans les flux RSS grâce à notre utilisateur de la fonction if (is_feed). En procédant ainsi, nous évitons tous les problèmes de compatibilité.
Certains d’entre vous diront, mais vous venez de faire ce que le plugin de pied de page RSS fait avec une fonction. Oui et non. Oui, nous ajoutons le code au pied de page de l'article, mais ce texte n'est pas le même texte exact pour chaque article. Il est différent car vous spécifiez un texte différent pour chaque article via des champs personnalisés. Cette astuce sera très pratique pour respecter les nouvelles directives de la FTC concernant les blogs qui ont tous des types de messages différents..
2. Ajouter du texte supplémentaire à des titres d'articles dans RSS
Votre blog contient-il des publications d'invités, des publications sponsorisées et des publications d'évaluation? Eh bien, si vous le faites, vous trouverez cela très utile. Certains blogueurs ont un style personnalisé pour afficher chaque type de message, afin que leurs utilisateurs puissent les distinguer. Mais lorsque ces messages sont publiés dans un lecteur, tous les styles ont disparu. C'est à ce moment que cette astuce est utile. Dans cette astuce, nous allons ajouter du texte avant ou après le titre..
Par exemple, si votre titre était «Thème WordPress commercial - StudioPress» et qu'il s'agissait d'un message sponsorisé, vous pouvez le remplacer par «Message sponsorisé: Thème WordPress commercial - StudioPress». Idem si quelqu'un écrivait un post invité, etc..
Pour ce faire, ouvrez votre fichier functions.php et ajoutez le code suivant:
fonction wpbeginner_titlerss ($ content) global $ wp_query; $ postid = $ wp_query-> post-> ID; $ gpost = get_post_meta ($ postid, 'guest_post', true); $ spost = get_post_meta ($ postid, 'Sponsored_post', true); if ($ gpost! == ") $ content = 'Message invité:'. $ content; elseif ($ spost! ==") $ content = 'Message sponsorisé:'. $ content; else $ content = $ content; return $ content; add_filter ('the_title_rss', 'wpbeginner_titlerss');
Explication du code:
Nous utilisons la fonction wpbeginner_titlerss qui exécute une requête globale wp_query afin de rechercher dans chaque publication si elle contient soit $ gpost, soit $ spost. Ces deux éléments recherchent essentiellement deux champs personnalisés spécifiques appelés «guest_post» ou «sponsor_post». Si quelqu'un a ajouté ces champs personnalisés avec une valeur true, le code l'ajoutera au texte. Sinon, vous verrez simplement le titre normal. Vous pouvez voir d’abord que le code cherche si $ gpost est vrai, si ce n’est pas vrai si $ spost est vrai. Si ce n'est pas non plus défini, alors il affiche un contenu normal. Mais si l'une d'entre elles était vraie, le texte que vous spécifiez ici est alors affiché. Nous utilisons $ content string pour afficher le titre de l'article.
Il s’agissait maintenant d’afficher des champs personnalisés dans le titre. Voulez-vous afficher le nom de la catégorie sur chaque titre? Dans ce cas, vous devriez simplement coller le code suivant dans votre fichier functions.php:
fonction wpbeginner_cattitlerss ($ content) $ postcat = ""; foreach ((get_the_category ()) en tant que $ cat) $ postcat. = '('. $ cat-> nom_cat. ')'; $ content = $ content. $ postcat; retourne $ contenu; add_filter ('the_title_rss', 'wpbeginner_cattitlerss');
Explanation: Nous utilisons la fonction wpbgeinner_cattitlerss pour obtenir l'ID de catégorie de chaque publication, puis l'afficher juste à côté du titre. Donc, si le titre est “Obtenir le formulaire de contact 7”, il s’agit maintenant de “Obtenir le formulaire de contact 7 [Plugins]”. Vous pouvez voir qu'il n'y a pas de variable if puis then dans ce code. Nous utilisons $ content pour le titre principal et la variable $ postcat pour définir le nom de la catégorie. Vous réorganisez ça si vous aimez.
3. Ajouter le même texte sur tous les messages en RSS
Si vous souhaitez simplement ajouter le même texte, vous pouvez également utiliser le plug-in appelé RSS Footer by Joost car il est plus facile. Mais si vous voulez le faire vous-même, voici comment vous le faites. Ouvrez votre fichier functions.php et ajoutez le code suivant:
function wpbeginner_postrss ($ content) if (is_feed ()) $ content = 'Ce message a été écrit par Syed Balkhi'. $ content. 'Check out WPBeginner'; return $ content; add_filter ('the_excerpt_rss', 'wpbeginner_postrss'); add_filter ('the_content', 'wpbeginner_postrss');
Explanation: Nous appelons une fonction wpbeginner_postrss pour ajouter à chaque message un contenu avant le message en disant que Ce message a été écrit par Syed Balkhi et après le contenu, consultez la section WPBeginner. Mais nous ajoutons la fonction if (is_feed), elle ne sera donc affichée que dans les flux RSS..
Cela serait très utile si vous vouliez vendre des annonces sur des publications spécifiques dans RSS, ajouter des directives personnalisées FTC ou simplement avoir plus de contrôle sur vos flux RSS..
Source: Nous avons utilisé le plug-in RSS Footer de Joost pour de nombreux conseils pour la rédaction de ce tutoriel. La partie de titre RSS hack que nous avons obtenue d'un site de tutoriel en français et nous avons ajouté nos propres variables et lui avons donné la possibilité d'être des titres personnalisés par champ personnalisé.