Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Criando um site do zero com WordPress - #15 Busca com filtros no WordPress II

22/03/2018

Nessa vídeo-aula vamos implementar o PHP que irá realizar o filtro de posts no banco de dados.

Filtrando posts no WordPress

Para realizarmos o filtro dos posts, vamos recorrer a tabela wp_term_relationships. Vamos verificar se existe aquele term_id cadastrado e se existir vamos pegar o object_id da tabela e associarmos a tabela wp_posts para chegarmos ao resultado final.

Para tanto, vamos criar um arquivo chamado controllerFiltro.php. No painel wp-admin, vamos criar uma página e associar ao controllerFiltro.

<?php /* Template Name: Controller Filtro */  ?>

<?php
$CampoBuscaFiltro='%'.$_POST['CampoBuscaFiltro'].'%';
$Categoria=$_POST['Categoria'];

$Resultado=$wpdb->get_results("select * from wp_term_relationships where term_taxonomy_id='$Categoria'");
foreach($Resultado as $Resultados){
    $PostId=$Resultados->object_id;
    $ResultadoPost=$wpdb->get_results("select * from wp_posts where (post_title like '$CampoBuscaFiltro' or post_content like '$CampoBuscaFiltro') and ID='$PostId'");

    foreach($ResultadoPost as $post){
        setup_postdata($post);
        $MediumImage=wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'medium');
        include(get_template_directory().'/includes/posts.php');
    }
}
?>

Linkando o jQuery no WP

Vamos também linkar o nosso jQuery nativo e chamar nosso arquivo javascript.js.

#Arquivo functions.php
wp_enqueue_script("jquery");

#Arquivo footer.php
<script src="<?php echo get_template_directory_uri()."/javascript.min.js"; ?>"></script>

Criando a pasta includes

Para facilitar nosso reuso de código, vamos criar a pasta includes e criar os arquivos com a div posts e com a barra de filtro.

#Arquivo barraFiltro.php
<div class="BuscaFiltro">
   <form name="FiltroBusca" id="FiltroBusca" action="<?php echo site_url().'/controllerFiltro'; ?>" method="post">
       <input type="hidden" id="CampoBuscaFiltro" name="CampoBuscaFiltro" value="<?php echo $_GET['CampoBusca']; ?>">
       <select name="Categoria" id="Categoria" required>
           <option value="">Categoria</option>
           <?php
           $BFetch=$wpdb->get_results("select * from wp_terms where term_id >3");
           foreach($BFetch as $Fetch){
               echo "<option value='$Fetch->term_id'>$Fetch->name</option>";
           }
           ?>
       </select>
       <input type="submit" value="Filtrar">
   </form>
</div>

#Arquivo posts.php
<a href="<?php the_permalink(); ?>">
    <div class="Post" style="background: url('<?php echo $MediumImage[0]; ?>') center center no-repeat;">
        <div class="PostTitle"><?php the_title(); ?></div>
    </div>
</a>

Na próxima aula implementaremos o nosso ajax.

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Criando um site do zero com WordPress - #14 Busca com filtros no WordPress
Nesta aula realizaremos o início da configuração da nossa busca com filtro no WordPress utilizando PHP, HTML5 e CSS.
Saiba mais!
Criando um site do zero com WordPress - #16 Busca com filtros no WordPress III
Na terceira e última aula de pesquisa com filtro no WordPress, iremos realizar o ajax que fará a busca com filtro sem refresh da página.
Saiba mais!
WordPress do Zero
Neste curso aprenderemos como criar um site no CMS WordPress do zero, começando pela instalação, criação do tema e publicação no ar.
Saiba mais!