Is_search não está funcionando na página de resultados de pesquisa

Eu tenho um submenu extra com este código na barra lateral:

if(is_404() || is_search()) : echo 'should be empty'; else : if($post->post_parent == '68') $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); if ($children) { ?>
    <?php } endif;

    Tenho um problema com a primeira linha. Está funcionando bem na página 404 e na página de pesquisa se você procurar algo que não existe, mas quando você procura algo que existe, o submenu está aparecendo na barra lateral. O que está errado neste código?

    Solutions Collecting From Web of "Is_search não está funcionando na página de resultados de pesquisa"

    Se o que você deseja é para else aparecer em 404 páginas e em páginas de pesquisa, mas somente quando a pesquisa não retorna resultados, o condicional que você precisa é …

     if(is_404() || (is_search() && 0 === $wp_query->found_posts)) { // ... } else { // ... } 

    A diferença entre isso e seu código é que eu adicionei uma verificação adicional para ver se a consulta de pesquisa tem resultados. Os suportes em torno de is_search() && 0 === $wp_query->found_posts) fazem o || operar contra toda a cláusula, exatamente como colchetes em matemática, na verdade.

    Se você não quiser else em qualquer pesquisa ou 404 páginas, então você precisa …

     if(!is_404() || !is_search()) { // ... } else { // ... } 

    … mas é isso que você tem, então não tenho certeza do que você está tentando alcançar.