Eu gostaria de usar um arquivo de postagem personalizado como página inicial do site, para que
http://the_site.com/
é um arquivo de tipo de postagem personalizado exibido de acordo com meu archive-{post-type}.php
arquivo.
Idealmente, gostaria de alterar a consulta usando is_front_page()
no meu functions.php
arquivo. Tentei o seguinte, com uma página chamada "Página inicial" como minha primeira página:
add_filter('pre_get_posts', 'my_get_posts');
function my_get_posts($query){
global $wp_the_query;
if(is_front_page()&&$wp_the_query===$query){
$query->set('post_type','album');
$query->set('posts_per_page',-1);
}
return $query;
}
mas a primeira página está retornando o conteúdo de "Página inicial" e parece estar ignorando a consulta personalizada.
O que estou fazendo de errado? Existe uma maneira melhor, em geral, de fazer isso?
custom-post-types
functions
wp-query
custom-post-type-archives
Isaac Lubow
fonte
fonte
Respostas:
Depois de definir uma página estática como sua página inicial, você pode adicioná-la
functions.php
e pronto . Isso chamará oarchive-POSTTYPE.php
modelo corretamente também.fonte
if(is_admin()) return;
no início, caso contrário, ela mexe com a área de administração.Mude o nome do seu arquivo CPT para home.php
Em seguida, use pre_get_posts para alterar a consulta da página inicial, para que apenas a exibição do CPT
Substitua your-cpt pelo nome do seu tipo de postagem personalizado.
fonte
Obrigado pela resposta ljaas - eu estava procurando resolver esse problema exato. Para que o modelo de arquivo morto de tipo de postagem personalizado seja chamado, tive que adicionar as seguintes condições:
fonte
Isso funciona melhor para mim, substituindo as postagens do blog e a página estática em Configurações> Leitura> Exibições da primeira página:
Estou usando-o em conjunto com uma substituição de modelo usando os filtros
front_page_template
ehome_template
para retornar um modelo personalizado.fonte
Para mim, isso quebra a paginação: ou você seleciona o índice ou uma página estática como a página inicial, os links de paginação são exibidos, mas ao clicar na página 2, recebo:
Eu acho que precisa de algumas regras de reescrita para pegar o argumento paginado e passá-lo corretamente.
De qualquer forma, uma página de modelo personalizada deve ser a solução com algumas regras de reescrita adicionais.
fonte