Suporte » Outros assuntos » Erro em mecanismo de pesquisa

  • Olá!

    Estou com um erro no mecanismo de pesquisa no site de um cliente.

    Após fazer uma pesquisa de um termo que não é encontrado, ele apresenta o seguinte erro, segundo o debug do WordPress:

    [17-Aug-2020 02:01:43 UTC] PHP Fatal error: Uncaught Error: Call to undefined function get_404() in /home1/centro26/public_html/wp-content/themes/WFP 2020_/search.php:42
    Stack trace:
    #0 /home1/centro26/public_html/wp-includes/template-loader.php(106): include()
    #1 /home1/centro26/public_html/wp-blog-header.php(19): require_once(‘/home1/centro26…’)
    #2 /home1/centro26/public_html/index.php(17): require(‘/home1/centro26…’)
    #3 {main}
    thrown in /home1/centro26/public_html/wp-content/themes/WFP 2020_/search.php on line 42

    Segue código da página search:

    <div class=”grid2-2″>
    <div class=”conteudo”>
    <!– WordPress Loop –>

    <?php
    if (have_posts()) :
    ?>
    <h1></h1>
    <div class=”search”>
    <?php echo do_shortcode( ‘[ivory-search id=”16166″ title=”WFP”]’ );?>
    <br><br>
    </div>
    <div class=”grid-posts”>
    <?php
    while (have_posts()) : the_post(); ?>
    <div class=”box-posts archive”>
    <!– thumbnail // featured img –>
    <div class=”thumbnail-posts” style=”background-image: url(‘<?php echo the_post_thumbnail_url();?>'”></div>
    <div class=”postinfo”>
    <!– data –>
    <div class=”date-posts”><?php echo get_the_date(‘d/m/Y’); ?></div>
    <!– titulo do post –>
    <h1 class=”posts”>“><?php the_title();?></h1>
    </div><!–postinfo–>
    </div><!–boxposts–>
    <?php endwhile;?>
    </div>
    <div class=”grid paginacao”>
    <?php the_posts_pagination(array(
    ‘prev_text’ => __(‘«’),
    ‘next_text’ => __(‘»’),));
    ?>
    </div>
    <?php
    else:
    get_404();
    endif;
    // Restore original query object
    $wp_query = null;
    $wp_query = $tmp_query;
    ?>
    </div>
    <!– margem | lateral direita –>
    <div class=”blank”></div>
    </div>

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Olá, a mensagem de erro está informando que a função get_404 não foi definida.

    Se este tema for de sua autoria, ou não for um tema público, você pode alterar o código do arquivo wp-content/themes/WFP 2020_/search.php comentando a função get_404();

    inegromonte

    (@inegromonte)

    @flschaves , obrigado pela resposta. A idéia é que ela fosse para uma página de erro 404. Quando comento, a página que aparece fica em branco.

    Entendi, acredito que você deva adicionar o seguinte action no functions.php do seu tema:

    add_action( 'template_redirect', 'redirect_if_no_search_results' );
    function redirect_if_no_search_results() {
        if ( is_search() ) {
            global $wp_query;
            if ($wp_query->post_count == 0) {
                // Setar diretamente o template como 404 e carregar o template de 404
                $wp_query->set_404();
                status_header( 404 );
                get_template_part( 404 );
    
                // Ou redirecionar para alguma página não encontrada
                wp_redirect( home_url( '/nao-encontrado/' );
    
                exit();
            }
        }
    }

    Obs: você deve escolher qual comportamento desejado, eu coloquei os 2 comportamentos dentro da condição.

    E mesmo assim, remover o get_404(); do seu template, pois essa função não existe.

    inegromonte

    (@inegromonte)

    @flschaves então seria remover o get_404() do wp-content/themes/WFP 2020_/search.php e adicionar a action no functions do tema.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Você deve estar conectado para responder a este tópico.