Como eu forneço um link “Mostrar todas as postagens” em um arquivo de termos paginados?

Eu tenho um tipo de postagem personalizado chamado game_go e uma taxonomia chamada game_go_series . Alguns termos de exemplo são chase , compete , victory , etc. Eu tenho um arquivo chamado taxonomy-game_go_series que exibe apenas as postagens na forma paginada de um termo individual .

A segunda página que eu quero criar precisa mostrar todas as postagens desse termo. Em outras palavras, haveria duas páginas que tenham o mesmo termo.

Além disso, e isso é importante, eu sei como fazer isso usando o termo no nome do arquivo (por exemplo, taxonomy-game_go-chase.php ), mas como iremos adicionando mais termos, vai se tornar uma dor para ter que crie um arquivo de modelo cada vez.

Existe uma maneira de fazer isso onde as páginas por termos-taxonomia são criadas automaticamente quando adicionamos novos termos?

Deixe-me saber se posso fornecer esclarecimentos adicionais. Obrigado!

Solutions Collecting From Web of "Como eu forneço um link “Mostrar todas as postagens” em um arquivo de termos paginados?"

Este método irá configurá-lo de modo que se você adicionar / tudo ao final de seus arquivos de taxonomia, ele mostrará todas as postagens.

Primeiro, ao registrar a taxonomia, certifique-se de configurar o ep_mask para EP_CATEGORIES . Isso significa que podemos adicionar um nó de extremidade personalizado a ele.

 function wpse_277843_register_taxonomy() { register_taxonomy( 'game_go_series', 'game_go', array( 'rewrite' => array( 'slug' => 'series', 'ep_mask' => EP_CATEGORIES, ), ) ); } add_action( 'init', 'wpse_277843_register_taxonomy' ); 

Não copie todo esse código, apenas certifique-se de fazer a coisa do ep_mask no seu código, porque provavelmente ainda não está configurado dessa forma.

Para adicionar ep_mask a tipos de postagem personalizados UI gerou taxonomias, faça isso:

 function wpse_277843_cptui_ep_mask( $args, $taxonomy_slug, $taxonomy_args ) { if ( 'game_go_series' == $taxonomy_slug ) { $args['rewrite']['ep_mask'] = EP_CATEGORIES; } return $args; } add_filter( 'cptui_pre_register_taxonomy', 'wpse_277843_cptui_ep_mask', 10, 3 ); 

Em seguida, crie o nó de extremidade de rewrite a máscara EP_CATEGORIES .

 function wpse_277843_all_endpoint() { add_rewrite_endpoint( 'all', EP_CATEGORIES ); } add_action( 'init', 'wpse_277843_all_endpoint' ); 

Isso significa que o ponto final também será válido para Categorias, mas podemos ignorá-los para qualquer comportamento personalizado mais tarde. Infelizmente, adicionar pontos finais apenas a uma taxonomia personalizada parece ser impossível no momento. Isso significa apenas que ir para /category/category-name/all não lançará um 404. O /all será simplesmente ignorado (ou você pode aplicar o mesmo comportamento para categorias, se desejar).

Então, em pre_get_posts , se o pre_get_posts é acessado na sua taxonomia personalizada, defina posts_per_page como -1 :

 function wpse_277843_all_posts( $query ) { if ( $query->is_main_query() && $query->is_tax( 'game_go_series' ) ) { if ( isset( $query->query_vars['all'] ) ) { $query->set( 'posts_per_page', -1 ); } } } add_action( 'pre_get_posts', 'wpse_277843_all_posts' ); 

Então você pode adicionar um link ao seu modelo para a / toda a versão, se já estiver em um arquivo de taxonomia e se ainda não for a versão / all:

 < ?php if ( is_tax( 'game_go_series' ) && get_query_var( 'all', false ) === false ) : ?>  Show All  < ?php endif; ?>