Anonim

Em algum momento do desenvolvimento do WordPress, talvez seja necessário fornecer um feed personalizado a alguém. Seja para fornecer uma API a alguém ou apenas fornecer uma experiência melhor para um determinado conjunto de usuários, é fácil.

Prefiro criar um novo feed em vez de estender os feeds padrão, pois acho esse método um pouco mais simples

função WordPress add_feed

add_filter ('init', 'tj_init_custom_feed'); function tj_init_custom_feed () {// inicializa o feed add_feed ('feed personalizado', 'tj_custom_feed'); }

No seu arquivo functions.php no seu tema WordPress, adicione o código acima. Como é melhor não chamar add_feed diretamente, nós o adicionamos através de um filtro em 'init'. O primeiro parâmetro na chamada de função é usado para fornecer a lesma de URL para o feed. O segundo parâmetro é usado para vinculá-lo a um nome de função. Portanto, quando esse URL é chamado (yourblogurl.com/custom-feed), ele executa a função PHP tj_custom_feed.

Observe que as regras de reescrita do WordPress devem ser liberadas antes que o URL seja reconhecido corretamente. Uma boa maneira simples de forçar a liberação das regras é acessar o Admin do WordPress -> Configurações -> Links permanentes e, em seguida, clicar no botão Salvar alterações.

Saída do XML

Na verdade, não há nada muito complexo na saída do código de feed RSS / XML. Primeiro, o tipo de conteúdo é definido através da função de cabeçalho php, para que possa ser renderizado adequadamente. Em seguida, recuperamos alguns dados de get_posts, passamos por eles e ecoamos na tela.

função tj_custom_feed () {header ("Tipo de conteúdo: texto / xml"); eco "\ n"; eco " \ n "; $ posts = get_posts (); foreach ($ posts como $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'cheio') ; eco ' '; eco "\ t ". $ post-> ID." \ n "; eco" \ t ". $ post-> post_date." \ n "; eco" \ t ". post_link." \ n "; eco" \ t ". esc_html ($ post-> post_title)." \ n "; eco" \ t ". esc_html (strip_tags ($ post-> post_excerpt))." \ n "; eco" \ t ". $ imagem." "; eco ' '; } eco " "; Saída; }

Criando feed RSS personalizado / xml wordpress