Anonim

В какой-то момент разработки WordPress вам может потребоваться предоставить кому-то специальный канал. Это может быть сделано для того, чтобы предоставить кому-то API или просто обеспечить лучший опыт для определенного набора пользователей, это легко сделать.

Я предпочитаю создавать новый канал, а не расширять каналы по умолчанию, так как я нахожу этот метод немного проще

add_feed функция WordPress

add_filter ( 'инициализации', 'tj_init_custom_feed'); function tj_init_custom_feed () {// инициализируем фид add_feed ('custom-feed', 'tj_custom_feed'); }

В вашем файле functions.php в вашей теме WordPress добавьте приведенный выше код. Поскольку лучше не вызывать add_feed напрямую, мы добавляем его через фильтр 'init'. Первый параметр в вызове функции используется для предоставления URL-адреса для канала. Второй параметр используется для привязки его к имени функции. Поэтому, когда этот URL-адрес вызывается (yourblogurl.com/custom-feed), он выполняет функцию PHP tj_custom_feed.

Обратите внимание, что правила переписывания для WordPress должны быть сброшены до того, как этот URL будет распознан правильно. Хороший простой способ принудительно сбросить правила - перейти в WordPress Admin -> Settings -> Permalinks, а затем нажать кнопку «Сохранить изменения».

Вывод XML

Нет ничего сложного в выводе кода канала RSS / XML. Во-первых, тип содержимого устанавливается через функцию заголовка php, поэтому он может быть отображен соответствующим образом. Затем мы извлекаем некоторые данные из get_posts, перебираем их и выводим на экран.

function tj_custom_feed () {header ("Content-type: text / xml"); эхо "\ n"; эхо " \ n "; $ posts = get_posts (); foreach ($ posts как $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'full') эхо «; эхо "\ т ". $ 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 ". $ изображение." "; echo ' «; } echo " "; Выход; }

Создание пользовательских WordPress RSS / XML канал