Recentemente me deparei com um pequeno problema ao desevolver um site/blog para o palestrante e consultor Adonai Zanoni pela empresa Intuicom. Bom o problema era o seguinte, separei o BLOG do SITE porque eles tem a estrutura diferente, INCLUSIVE a sidebar.
Então fiz uma condicional para diferenciar a sidebar do SITE com a sidebar do BLOG e includir a sidebar correspondente:
<?php
$atual = get_post_type();
// Se for o blog carrega o sidebar correspondente
if($atual == ‘post’)
include( TEMPLATEPATH . ‘/inc-sidebar-blog.php’ );
// Se for o website carrega o sidebar correspondente
else
include( TEMPLATEPATH . ‘/inc-sidebar-website.php’ );
?>
OK funcionou; o problema era quando eu fazia uma pesquisa, pois me retornava todos os POSTS e PÁGINAS do site, fazendo que minha condicional da sidebar desse erro, incluindo a sidebar do site no BLOG, atrapanhando a navegação e confundindo o usúario.
SOLUÇÂO:
// Remove pages from search
function mySearchPostsFilter($query) {
if ($query->is_search) {
$query->set(‘post_type’, ‘post’);
}
return $query;
}
add_filter(‘pre_get_posts’,'mySearchPostsFilter’);
Desse modo o search do retorna as pesquisas feitos por POSTs.