Então isso está me deixando absolutamente louco. Passei dias tentando consertar isso e não consigo entender por que isso é tão difícil, pois certamente essa é uma estrutura permalink muito comum!
Examinei centenas de respostas e postagens e nenhuma delas parece resolver o problema.
Eu simplesmente quero essa estrutura:
mysite.com/custom-post-type/custom-taxonomy-term/post-name
Então, eu alcanço o seguinte:
mysite.com/literature - all literature posts
mysite.com/literature/fiction - all literature posts with 'fiction' term
mysite.com/literature/fiction/mybook - the post
Sempre que tento algo, obtenho erros 404 ou a paginação não funciona.
Eu não entendo por que isso é tão difícil!
Qualquer ajuda realmente apreciada!
Obrigado
==================================================== ==== ================== INFORMAÇÃO ADICIONAL ==================
Atualmente, estou registrando o tipo de postagem e taxonomia da seguinte maneira:
register_post_type('literature',$args);
'rewrite' => array('slug' => 'literature/books','with_front' => false),
register_taxonomy('literature_category',array('literature'), array(
'rewrite' => array( 'slug' => 'literature','with_front' => false ),
Se eu registrar ambos como 'literatura', recebo um 404 na página mysite.com/literature, mas isso exibe meu link permanente como: mysite.com/literature/books/mybook
Depois de seguir o conselho sobre esta pergunta - tipos de postagens, taxonomias e links permanentes personalizados
Eu adicionei isso às minhas funções:
function filter_post_type_link($link, $post) {
if ($post->post_type != 'literature')
return $link;
if ($cats = get_the_terms($post->ID, 'literature_category'))
$link = str_replace('%literature_category%', array_pop($cats)->slug, $link);
return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
E alterei meu tipo de postagem para 'slug' => 'literature/%literature_category%'
E alterei minha taxonomia para'slug' => 'literature'
Isso funciona muito bem, exceto que na mysite.com/literature
paginação não funciona, então eu recebo um erro 404 no seguinte URL:
mysite.com/literature/page/2/
fonte
Respostas:
Siga os conselhos sobre esta pergunta como você já fez, mas adicione-o ao seu código:
Por fim, vá para Configurações> Links permanentes e clique em Salvar. Se ainda assim não funcionar, salve seus links permanentes novamente. Às vezes, sinto que você precisa salvá-las duas vezes, mas quem sabe. De qualquer forma, deixe-me saber como você se sai. Observe que a resposta padrão 1 de ciência da computação se aplica: Funciona para mim ... ;-)
Da terra de TMI ...
Para referência, a razão pela qual as páginas não funcionam por padrão é que o WordPress coloca uma regra de reescrita para literatura /% literatura_categoria% /% livro% /% página%, o que faz todo o sentido se você pensar sobre isso. Portanto, seus links permanentes padrão têm estas regras concorrentes nesta ordem:
Tudo o que realmente estamos fazendo aqui é alterar a ordem desses, desmarcando o último (podemos mantê-lo, mas cada reescrita a seguir tem mais um regex para executar no carregamento da página) e adicioná-lo ao início da matriz.
Curiosidade: se você tiver um "livro" intitulado "página" e ele tiver várias páginas, esse pedido entrará em conflito e as páginas subsequentes não funcionarão!
fonte