Eu tenho uma página com duas seções, cada uma usa uma diferente WP_Query()
para puxar events
, que são um tipo de postagem personalizada. Cada WP_Query()
uma consulta meta_key
a data do evento para que a Seção 1 exiba apenas os próximos events
e a Seção 2 exiba events
.
Os próximos itens events
da Seção 1 exibem todas as informações relevantes na minha página, portanto, não é possível clicar nelas.
O passado events
na Seção 2 exibe apenas o event
título e é clicável. Quando os usuários clicam em um passado, event
eles vinculam a um single-event.php
modelo personalizado do passado event
.
Quero exibir a navegação Anterior / Próxima no single-event.php
modelo, mas a navegação deve apontar apenas para o passado events
.
Eu tentei usar next_post_link()
e previous_post_link()
mas estes vão ligar para as próximas events
também, o que eu não quero. Provavelmente, posso configurar um novo WP_Query()
no meu single-event.php
e fazer um loop para obter os IDs Anterior / Próximo, mas repetir a consulta parece uma etapa drástica.
Eu realmente aprecio algumas dicas sobre como filtrar os próximos events
links dos meus posts anteriores / próximos. Eu já vi essa pergunta, mas prefiro não usar um plugin.
get_adjacent_post
função.WP_Query
, em seguida$your_query_object->request
, inspecionar , o que revelará uma boa parte do SQL necessário para executá-lo.Respostas:
Consegui fazer isso funcionar usando apenas filtros do WordPress, graças à dica de @ Milo.
Observe que estes são bastante específicos para o meu caso, mas você não deve ter problemas para modificá-los para seu próprio uso. Estou usando campos personalizados avançados com um campo Seletor de datas chamado
date
e os links Anterior / Próximo apontam apenas para eventos comdate
campos definidos para qualquer dia antes de hoje.Eu criei 5 filtros:
JOIN
(para adicionarwp_postmeta
)WHERE
para o link anteriorWHERE
para o link AvançarSORT
para o link anteriorSORT
para o link AvançarAqui está o que eu criei, parece estar funcionando, mas se alguém detectar algum problema, eu adoraria comentários:
fonte
Eu tive um problema bastante semelhante, necessário para classificar e excluir várias postagens da navegação anterior / seguinte. O problema com a solução do @ cfx era: não é capaz de ajax: a
is_singular()
função retorna false, se você carregar o conteúdo via wp-ajax. portanto, funcionou no carregamento da página, mas não quando o conteúdo foi alterado pelo ajax.global $post;
estava me ajudando aqui.aqui está a minha solução:
nesse caso, a consulta do campo de costum é: excluir todas as postagens que tenham cf
not_clickable
definido comotrue
.outro problema que encontrei: criei algum conteúdo e depois implementei esse campo personalizado. Portanto, a consulta também excluiu as postagens que nem tinham esse campo anexado à postagem, independentemente de verdadeiro ou falso. basta ter isso em mente ao usar esse tipo de filtragem. verifique se todas as postagens têm um valor ou considere isso na sua sintaxe sql.
fonte