Eu tenho um cliente cujo site fará uso pesado de tipos de postagem personalizados para configurar seu site. Mas estou entre uma pedra e um lugar difícil para a página inicial solicitada.
Na realidade, a página inicial será uma pilha de "páginas" específicas no WordPress. Basicamente, haverá páginas para: Introdução , Blog , Sobre nós , Portfólio e Entre em contato . Todos eles serão empilhados um sobre o outro para que você possa rolar de uma página para outra.
Meu primeiro instinto foi usar apenas uma página (chamada Home ) e incorporar um código de acesso que aceite slugs de página e produza a ordem correta (ie [pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder]
). A página usaria um modelo de página personalizado para organizar, controlar o loop e adicionar navegação ao lado esquerdo da página. Mas tudo isso parece desajeitado.
Minha solução ideal seria criar um tipo de postagem personalizado (chamado Stack ) que permita ao usuário final posicionar as páginas com arrastar e soltar e fazer com que o CPT cuide do layout, da navegação e assim por diante.
O problema com a minha solução ideal são as configurações. O WordPress permite que você selecione uma página para a página inicial padrão do site. Mas ele está vinculado a um tipo de página de postagem , e não tenho certeza de onde conectar para modificar isso, para que os usuários também possam selecionar uma Pilha como a página inicial padrão.
Então, onde eu conecto para adicionar um CPT ao menu suspenso de páginas disponíveis para a página inicial padrão?
post_type
já não está definido epage_id
se não é 0) impede todos os 404s. Agora, posso executar consultas para todas as minhas postagens personalizadas, todas as minhas postagens e todas as minhas páginas sem nenhuma interferência.Talvez sim? Versão refinada da minha solução anterior .
fonte
Por que não criar apenas um
front-page.php
arquivo de modelo, que usa uma consulta / loop normal ou (se uma opção de tema personalizada estiver configurada para exibir o CPT na página inicial), gera uma consulta / loop personalizado, com base no CPT?O problema é que você precisaria criar uma opção de tema separada para controlar a saída da página inicial, enquanto instrui os usuários a definir a página inicial como página estática.
Para facilitar as coisas, você pode conectar sua opção Tema à leitura de configurações, usando o grupo de opções "Leitura" em sua chamada para
register_setting
a API de configurações, para que ela seja exibida com as opções de página inicial existentes.fonte
front-page.php
é selecionado automaticamente porque faz parte da hierarquia do modelo do wordpress. Não é preciso lembrar por que isso está acontecendo (ou precisa marcar para a próxima pessoa).Acho que algo pode ter mudado desde que o EAMann escreveu sua atualização em 2011, e a função wpa18013_add_pages_to_dropdown () que ele fornece não funciona mais. Conforme mencionado em um comentário de Dameer, essa função atualmente (dezembro de 2013) gera um erro "Argumento ausente 2 para wpa18013_add_pages_to_dropdown ()"
A solução, para mim, era reescrever a função sem esse segundo parâmetro ou verificar o conteúdo. O bloco completo de código se torna:
Observe que no exemplo acima, o tipo de postagem personalizado que estou adicionando é "unbox_tabs" em vez de "empilhar".
fonte
Estou usando esta técnica para incluir um modelo de um plugin. Portanto, a solução da @ ChipBennett não se aplica.
Para adicionar os CPTs ( ) do plug-in na lista de páginas estáticas, modifiquei a solução do @ EAMann da seguinte maneira:
'hierarchical' => 'false'
Referência principal v3.4.2:
pequena diferença de números de linha no 3.5 RC3, mas o código permanece o mesmo
fonte