1
resposta

Não consigo acrescentar o filtro de países

Estou usando o WordPress 5.7 porque logo de cara o anterior já deu bug e eu consegui resolver com mudando o word press. Esta indo tudo bem até chegar nessa parte do filtro, não consigo encontrar o que estou fazendo de errado. Dá o seguinte erro: Warning : Undefined array key "paises" in C:\xampp\htdocs\alura-intercambios\wp-content\themes\alura-intercambios\page-destinos.php on line 36

<?php

$estiloPagina = 'destinos.css';
require_once 'header.php';

/* MÉTODO PARA IMPRIMIR O ARRAY E CONFERIR AS INFORMAÇÕES - DEBUG
echo '<pre>';
$paises = get_terms(array('taxonomy' => 'paises'));
print_r($paises);
echo '</pre>';
?>
*/

?>
<form action='#' class="container-alura formulario-pesquisa-paises">
    <h2> Conheça nossos destinos</h2>
    <select name="paises" id="paises">
        <option value="">--Selecione--</option>
        <?php
            $paises = get_terms(array('taxonomy' => 'paises'));
            foreach ($paises as $pais):?>
                <option value="<?= $pais->name ?>"><?= $pais->name ?></option>
            <?php endforeach;

        ?>
    </select>
    <input type="submit" value="Pesquisar">
</form>

<?php


$paisSelecinado = array(array(
    'taxonomy' => 'paises',
    'field' => 'name',
    'terms' => $_GET['paises']
));

$args = array(
    'post_type' => 'destinos',
    'tax_query' => $paisSelecinado
);


$query = new WP_Query($args);
if ($query -> have_posts()): //aqui são : e não ;
    echo '<main class="page-destinos">';
    echo '<ul class="lista-destinos container-alura">';
    while($query -> have_posts()): $query -> the_post();
        echo '<li class="col-md-3 destinos" >';
        the_post_thumbnail();
        the_title('<p class="titulo-destino">', '</p>');
        the_content();
        echo '</li>';
    endwhile;
    echo '</ul>';
    echo '</main>';
endif;

require_once 'footer.php';

Eu achei que poderia ser porque eu tinha escrito na taxonomia países com acento, mas depois eu corrigi e testei de novo e estava tudo bem. O problema aparece na hora que coloco o código

$paisSelecinado = array(array(
    'taxonomy' => 'paises',
    'field' => 'name',
    'terms' => $_GET['paises']
));

$args = array(
    'post_type' => 'destinos',
    'tax_query' => $paisSelecinado
);
$query = new WP_Query($args);
if ($query->have_posts()):
...

até copiei e colei a versão do professor, mas não mudou em nada o erro. Ele acusa erro na linha 'terms' => $_GET['paises']

Editado

Eu limpei os dados dos países e das cidades depois de mudar o nome da taxonomia para paises sem acento e inseri tudo novamente. O que fez com que parasse de aparecer o erro no wp-admin. Mas não consegui ajeitar ainda esse erro no $_GET['paises].

Depois de desistir buscar pelo erro eu tentei substituir os arquivos pelos arquivos do professor functions e page-destinos. Isso fez com que parasse de aparecer o erro, mas continua esquisito. Quando clico em Roma e Sydney a imagem abre toda desfigurada e não permanece o local de busca. Já Seoul quando tento abrir não aparece nada, apenas o cabeçalho.

1 resposta

Oi, Tayane, tudo bem?

Você pode compartilhar o seu código atual de page_destinos e o de functions.php? Para que possa testar e entender esse comportamento estranho quando tenta acessar as páginas.