web-dev-qa-db-fra.com

Impossible de faire fonctionner add_feed

Je souhaite ajouter un flux personnalisé sur mon site à des fins de référencement.

J'ai donc d'abord copié le fichier /wp-includes/feed-rss2.php dans mon dossier de thème et je l'ai renommé. Je pensais pouvoir facilement éditer mon flux.

Puis j'ajoute ce code:

function yandex_news_feed() {
load_template(TEMPLATEPATH . '/yandex-news.php'); 
}

function yandexnews_add_feed() {
add_feed('do_feed_yandexnews', 'yandex_news_feed');
}

add_action('init', 'yandexnews_add_feed');

J'ai essayé avec beaucoup de façons et lu beaucoup de documentation (presque toujours la même chose, beaucoup de gens ajoutent rewrite_rules au code mais ce n'est pas le problème ici) et la source de add_feed indique que les règles de réécriture sont prises en charge.

Mais de toute façon, ça ne marche pas du tout, je vais faire http://infoglam.exigences.biz/?feed=yandexnews ou http://infoglam.exigences.biz/feed/yandexnews ; c'est la même chose: page blanche, vide, rien.

Veuillez noter que si vous utilisez un nom volontairement incorrect, tel que http://infoglam.exigences.biz/?feed=yandexnews5 , je reçois une erreur ERROR: yandexnews5 is not a valid feed template. donc ça a l'air bizarre le nom du flux est enregistré, mais le modèle n'est pas exécuté.

J'ai les autorisations de vérification sur le fichier de modèle, j'ai essayé avec et sans do_feed_; J'ai essayé avec include au lieu de load_template()

Je pense que je pourrais utiliser à la fin une page de modèle avec une page vierge sur l’administrateur, mais je trouve cela peu élégant, même s’il est efficace et rapide. Je vais utiliser plusieurs flux sur le site et je ne veux pas vraiment traiter les pages vierges. Si j'utilise le thème ailleurs, il me faudra recréer des pages, il sera préférable de le faire concorder avec le thème.

Je suppose que le problème pourrait être lié au chargement du modèle, mais maintenant je suis complètement perdu et je ne trouve pas où je le fais mal.

Quelqu'un pourrait-il me donner un coup de main s'il vous plaît?

2
Simon

Le code fonctionne:

add_feed('myfeed_rss2', 'my_feed');

function my_feed() {
add_filter('pre_option_rss_use_excerpt', '__return_zero');
load_template( TEMPLATEPATH . '/custom-feed.php' );
}

RSS est contextuel: si j'ajoute ?feed=myfeed_rss2 après l'URL de l'index, ceci indiquera à WP d'afficher le contenu de la maison avec le modèle custom-feed.php - il s'agit davantage d'un filtre qu'autre chose. Je considérais RSS d'un mauvais point de vue.

Si j'ajoute ?feed=myfeed_rss2après une URL de page de catégorie, la page de catégorie sera affichée avec le modèle custom-feed.php.

Je n'ai pas encore trouvé le moyen de modifier la requête à partir du modèle. Cela doit être fait différemment, c'est-à-dire créer une page spéciale dans un thème, puis appeler le modèle RSS dessus (par exemple, avoir un article de flux RSS de 50 longs).

Le modèle RSS est uniquement la structure XML stricte du contenu, avec la possibilité d'utiliser le code PHP pour ajouter des informations (comme la longueur du fichier en octets pour les boîtiers).

EN PLUS

Quelque chose de vraiment important si les gens essaient d'utiliser/de gérer un flux personnalisé: seuls les flux sont créés/modifiés lors de la post-modification/ajout. Pour résumer, vous devez publier un nouveau message (ou en mettre un ancien comme brouillon, faire un test, puis le republier, faire un test ...) pour vérifier toute modification apportée au modèle RSS.

3
Simon