WordPress Permalinks% postname% para RSS2 Feed URL

Um dos meus clientes está desenvolvendo um SmartPhone Apps com o site WordPress que criei para eles. O site é da versão on-line de um jornal diário. Todas as notícias são classificadas por categorias diferentes. Assim, o desenvolvedor do Google Apps está aceitando o feed de categoria juntamente com um feed de arquivo (‘Arquivo com categoria’ no exemplo aqui). Então, no padrão, o feed URL é como:

http://domain/?m=YYYYMMDD&feed=rss2&cat=## 

Está funcionando bem para nós.

Agora, por muitas razões, queremos mudar para o %postname% permalink. No meu estudo, achei que as alterações de URL são as seguintes:

PARA PERFALINHOS PADRÃO

  • Categoria: http://domain/?cat=3
  • Arquivo: http://domain/?m=YYYYMMDD
  • Arquivo com categoria: http://domain/?m=YYYYMMDD&cat=##

PARA POSTNAME PERMALINKS

  • Categoria: http://domain/category/cat-name/
  • Arquivo: http://domain/YYYY/MM/DD/
  • Arquivo com categoria: [???]

Problema

Então, seguindo a tendência das mudanças de URL, se eu digitar o URL ‘Arquivo com categoria’, como:

 http://domain/YYYY/MM/DD/category/cat-name/ 

Isso leva a uma página 404.

Pergunta real

Então o problema é:

  1. Não consigo descobrir como chegar ao ‘Arquivo com categoria’ em %postname% permalink?
  2. Se eu puder entrar nisso, então será o mesmo para o URL do feed RSS também?

Solutions Collecting From Web of "WordPress Permalinks% postname% para RSS2 Feed URL"

Em primeiro lugar, não há nenhuma maneira padrão de fazer isso tanto quanto eu sei.

Se você usar o plugin ‘ Rewrite rule inspector plugin ‘, verá que não há nenhuma regra padrão que combine a categoria, a data eo feed como parâmetros.

Um exemplo de regra de data é

 ([0-9]{4})/([0-9]{1,2})/?$ index.php?year=$matches[1]&monthnum=$matches[2] 

e uma regra de categoria de exemplo é

 category/(.+?)/?$ index.php?category_name=$matches[1] 

e uma regra de feed de exemplo é

 feed/(feed|rdf|rss|rss2|atom)/?$ index.php?&feed=$matches[1] 

O que você quer fazer é combinar essas três regras e criar algumas novas regras disponíveis para wordpress.

Você pode fazer isso adicionando o abaixo para suas functions.php

 function rewrite_rules() { add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&category_name=$matches[3]&feed=$matches[4]', 'top' ); // /2012/01/category/life-the-universe-and-everything/feed/atom add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/category/(.+?)/feed/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&category_name=$matches[3]&feed=feed', 'top' ); // /2012/01/category/life-the-universe-and-everything/feed/ add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/category/(.+?)/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&daynum=$matches[3]&category_name=$matches[4]', 'top' ); // /2012/01/15/category/life-the-universe-and-everything/ add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/category/(.+?)/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&category_name=$matches[3]', 'top' ); // /2012/01/category/life-the-universe-and-everything/ } add_action( 'init', 'rewrite_rules' ); 

Espero que responda sua pergunta, qualquer problema me avise.