Anonim

W pewnym momencie rozwoju WordPress może być konieczne zapewnienie komuś niestandardowego kanału. Bez względu na to, czy ma to zapewnić komuś interfejs API, czy po prostu zapewnić lepszą obsługę określonego zestawu użytkowników, można to łatwo zrobić.

Wolę utworzyć nowy kanał zamiast rozszerzać kanały domyślne, ponieważ uważam tę metodę za nieco prostszą

add_feed Funkcja WordPress

add_filter ('init', 'tj_init_custom_feed'); funkcja tj_init_custom_feed () {// zainicjuj kanał add_feed ('custom-feed', 'tj_custom_feed'); }

W pliku functions.php w motywie WordPress dodaj powyższy kod. Ponieważ najlepiej jest nie wywoływać bezpośrednio metody add_feed, dodajemy ją przez filtr „init”. Pierwszy parametr w wywołaniu funkcji służy do podania informacji o adresie URL kanału. Drugi parametr służy do powiązania go z nazwą funkcji. Tak więc, gdy ten adres URL jest nazywany (twójblogurl.com/custom-feed), wykonuje on funkcję PHP tj_custom_feed.

Pamiętaj, że reguły przepisywania dla WordPress muszą zostać opróżnione, zanim ten adres URL zostanie poprawnie rozpoznany. Dobrym prostym sposobem wymuszenia wyczyszczenia reguł jest przejście do Administratora WordPress -> Ustawienia -> Permalinki, a następnie kliknij przycisk Zapisz zmiany.

Wyprowadzanie XML

Naprawdę nic nie jest zbyt skomplikowane w generowaniu kodu kanału RSS / XML. Po pierwsze, typ zawartości jest ustawiany za pomocą funkcji nagłówka php, dzięki czemu można go odpowiednio renderować. Następnie pobieramy niektóre dane z get_posts, przeglądamy je i wysyłamy na ekran.

function tj_custom_feed () {header ("Content-type: text / xml"); echo "\ n"; Echo " \ n "; $ posts = get_posts (); foreach ($ posts as $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'full') ; 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 „. $ image.” "; Echo ' „; } Echo " "; wyjście; }

Tworzenie niestandardowego kanału wordpress rss / xml