Erstellen von benutzerdefinierten WordPress RSS / XML Feed

Sie müssen irgendwann in Ihrer WordPress-Entwicklung jemanden mit einem benutzerdefinierten Feed versehen. Ob es darum geht, jemandem eine API zur Verfügung zu stellen oder einfach nur eine bessere Erfahrung für eine bestimmte Gruppe von Benutzern bereitzustellen, ist einfach.

Ich bevorzuge es, einen neuen Feed zu erstellen, anstatt die Standardfeeds zu erweitern, da ich diese Methode etwas einfacher finde

add_feed WordPress-Funktion

 add_filter ('init', 'tj_init_custom_feed'); Funktion tj_init_custom_feed () {// initialisiere den Feed add_feed ('custom-feed', 'tj_custom_feed'); } 

Fügen Sie in Ihrer functions.php-Datei in Ihrem WordPress-Theme den obigen Code hinzu. Es ist am besten, add_feed nicht direkt aufzurufen, sondern fügen wir es über einen Filter in 'init' hinzu. Der erste Parameter im Funktionsaufruf wird verwendet, um den URL-Slug für den Feed bereitzustellen. Der zweite Parameter wird verwendet, um ihn an einen Funktionsnamen zu binden. Wenn diese URL aufgerufen wird (yourblogurl.com/custom-feed), wird die PHP-Funktion tj_custom_feed ausgeführt.

Bitte beachten Sie, dass die Rewrite-Regeln für WordPress geleert werden müssen, bevor diese URL korrekt erkannt wird. Eine gute einfache Möglichkeit, um die Regeln zu entfernen, ist es, zu WordPress Admin -> Einstellungen -> Permalinks zu gehen und dann auf die Schaltfläche Änderungen speichern zu klicken.

Ausgabe der XML

Die Ausgabe des RSS / XML-Feed-Codes ist wirklich nicht allzu komplex. Zuerst wird der Inhaltstyp über die PHP-Header-Funktion gesetzt, so dass er entsprechend gerendert werden kann. Als nächstes rufen wir einige Daten von get_posts ab, durchlaufen sie und geben sie auf dem Bildschirm aus.

 Funktion tj_custom_feed () {header ("Inhaltstyp: text / xml"); Echo "\ n"; Echo "\ n"; $ Beiträge = get_posts (); foreach ($ posts als $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'voll'); Echo ''; 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". $ bild [0]. ""; Echo ''; } echo ""; Ausfahrt; } 
Siehe Auch