Ir para o conteúdo principal

Como usar corretamente WP_Query no WordPress

Divi: o tema WordPress mais fácil de usar

Divi: O melhor tema WordPress de todos os tempos!

mais Downloads 600.000Divi é o tema WordPress mais popular do mundo. É completo, fácil de usar e vem com mais de modelos livres 62. [Recomendado]

Je suis un grand fan de la classe WP_Query : je l’utilise sur plusieurs sites web de clients pour récupérer et afficher des données de manière personnalisée.

Se você deseja usar vários loops em uma página, a melhor maneira de fazer isso é executar "WP_Query" toda vez que precisar fazer um loop.

Mais il y a un inconvénient : À chaque fois que WordPress exécute une boucle, il envoi des requêtes à la base de données, ce qui prend plus de temps et peut ralentir votre site web.

Dans ce tutoriel, je vais vous montrer comment utiliser une requête pour plus d’une boucle. Vous pouvez le faire avec la requête principale ou vous pourrez utiliser la même technique avec WP_Query.

Vamos explorar aspectos 3:

  • Crie um tema filho e um arquivo de modelo.
  • Crie uma peça de modelo para o conteúdo do loop.
  • Crie nossos loops.

Mas antes de descobrirmos juntos Como instalar um blog WordPress passos 7 et Como encontrar, instalar e ativar um tema WordPress em seu blog

Então, voltemos ao porquê de estarmos aqui.

O que você precisa

Para seguir este tutorial, você vai precisar de:

  • De uma instalação do WordPress para desenvolvimento (localmente).
  • Um editor de código.
  • Artigos em seu site com várias categorias atribuídas
  • o tema vinte e dezesseis do WordPress
  • Um tema filho de vinte e dezesseis instalado e ativado

Cette technique s’adapte aussi à votre situation, et à votre thème WordPress.

Criando um tema filho

Primeiro, criaremos o tema filho de vinte e dezesseis. Estou fazendo isso porque não quero alterar o tema principal.

Discover Como instalar um tema criança WordPress

Dans votre dossier « wp-content/themes », créez un nouveau dossier vide, que vous appellerez « tuto-theme ». Vous pourrez plus tard choisir le nom qui vous convient.

Dans ce dossier, créez un fichier appelé style.css et ajouter y le code suivant :

/*

Theme Name: Tuto Theme

Theme URI: https://blogpascher.com

Description: Theme to support Tutorial on running multiple loops while querying the database just once. Child theme for the Twenty Sixteen theme.

Author: Hervé

Author URI: https://blogpascher.com

Template: twentysixteen

Versão: 1.0

*/

@import url(« ../twentysixteen/style.css »);

Agora salve este arquivo e ative seu novo tema do WordPress.

O próximo passo é criar um arquivo de modelo para categorias, é nisso que vamos trabalhar.

Faites une copie du fichier « archive.php » depuis le thème WordPress « Twenty Sixteen ». Ne le déplacez pas, mais faites-en une copie. Renommez-le « category.php ».

Para ir além, descubra Como gerenciar arquivos e pastas WordPress

Agora, esse será o arquivo de modelo para as categorias do seu site.

Criando um novo arquivo de modelo

La première étape consiste à créer un nouveau fichier modèle dans notre thème qui contiendra une version modifiée de la boucle de « twenty sixteen ».

Vamos também consultar juntos Como colocar seu site WordPress no modo Manutenção

Dans le dossier du thème enfant, créez un sous-dossier appelé « includes ». Et à l’intérieur, créez un nouveau fichier nommé « loop-category.php ».

Ensuite, ouvrez le fichier « template-parts/content.php » à partir des dossiers du thème parent(twenty sixteen) et retrouvez le code suivant :

<article id= »post-<?php the_ID(); ?> » <?php post_class(); ?>>

<header class= »entry-header »>

<?php if ( is_sticky() && is_home() && ! is_paged() ) : ?>

<span class= »sticky-post »><?php _e( ‘Featured’, ‘twentysixteen’ ); ?></span>

<?php endif; ?>

<?php the_title( sprintf( ‘<h2 class= »entry-title »><a href= »%s » rel= »bookmark »>’, esc_url( get_permalink() ) ), ‘</a></h2>’ ); ?>

</header><!– .entry-header –>

<?php twentysixteen_excerpt(); ?>

<?php twentysixteen_post_thumbnail(); ?>

<div class= »entry-content »>

/* translators: %s: Name of current post */

the_content( sprintf(

__( ‘Continue reading<span class= »screen-reader-text »> « %s »</span>’, ‘twentysixteen’ ),

get_the_title()

));

wp_link_pages( array(

‘before’ => ‘<div class= »page-links »><span class= »page-links-title »>’ . __( ‘Pages:’, ‘twentysixteen’ ) . ‘</span>’,

‘after’ => ‘</div>’,

‘link_before’ => ‘<span>’,

‘link_after’ => ‘</span>’,

Você está procurando os melhores temas e plugins do WordPress?

Baixe os melhores plugins e temas WordPress no Envato e crie facilmente o seu site. Já mais do que 49.720.000 downloads. [EXCLUSIVO]

‘pagelink’ => ‘<span class= »screen-reader-text »>’ . __( ‘Page’, ‘twentysixteen’ ) . ‘ </span>%’,

‘separator’ => ‘<span class= »screen-reader-text »>, </span>’,

));

?>

</div><!– .entry-content –>

<footer class= »entry-footer »>

<?php twentysixteen_entry_meta(); ?>

edit_post_link(

sprintf(

/* translators: %s: Name of current post */

__( ‘Edit<span class= »screen-reader-text »> « %s »</span>’, ‘twentysixteen’ ),

get_the_title()

),

‘<span class= »edit-link »>’,

‘</span>’

);

?>

</footer><!– .entry-footer –>

</article><!– #post-## –>

Copiez ce code dans le nouveau fichier « loop-category.php » du thème enfant.

Editando o arquivo de parte do modelo

O loop "vinte e dezesseis" exibe mais do que eu preciso, então vou modificar esse código. Eu só quero mostrar o snippet e não o conteúdo, então excluiremos o conteúdo.

Qual é a diferença entre H1 e o título de SEO de um artigo do WordPress? Descubra consultando este artigo.

Dans votre nouveau fichier loop-category.php, retrouvez ce code et supprimez-le:

<div class= »entry-content »>

/* translators: %s: Name of current post */

the_content( sprintf(

__( ‘Continue reading<span class= »screen-reader-text »> « %s »</span>’, ‘twentysixteen’ ),

get_the_title()

));

wp_link_pages( array(

‘before’ => ‘<div class= »page-links »><span class= »page-links-title »>’ . __( ‘Pages:’, ‘twentysixteen’ ) . ‘</span>’,

‘after’ => ‘</div>’,

‘link_before’ => ‘<span>’,

‘link_after’ => ‘</span>’,

‘pagelink’ => ‘<span class= »screen-reader-text »>’ . __( ‘Page’, ‘twentysixteen’ ) . ‘ </span>%’,

‘separator’ => ‘<span class= »screen-reader-text »>, </span>’,

));

?>

</div><!– .entry-content –>

L’autre étape consiste à remplacer La fonction « twenty_sixteen_excerpt() » par la fonction « the_excerpt() », parce que la version de twenty sixteen ne propose pas un lien vers l’article complet.

Veja também Como visualizar os artigos recentes em uma categoria específica

Encontre esta linha:

? <Twenty_sixteen_excerpt Php (); ?>

Substitua por:

? <The_excerpt Php (); ?>

Também precisamos fazer algumas alterações nas tags de título.

Na parte do modelo, altere a linha:

<?php the_title( sprintf( ‘<h2 class= »entry-title »><a href= »%s » rel= »bookmark »>’, esc_url( get_permalink() ) ), ‘</a></h2>’ ); ?>

Edite as tags H2 para H3:

<?php the_title( sprintf( ‘<h3 class= »entry-title »><a href= »%s » rel= »bookmark »>’, esc_url( get_permalink() ) ), ‘</a></h3>’ ); ?>

Enregistrez votre modèle. Ensuite, retournez à votre fichier category.php nous allons continuer avec ce dernier.

Criando loops

Tout d’abord nous allons supprimer l’inclusion du code de « twenty sixteen » de notre fichier « category.php », car nous aurons besoin d’utiliser le nouveau fichier.

Dans votre fichier category.php retrouvez ce code :

get_template_part( ‘template-parts/content’, get_post_format() );

E exclua o.

Então, criaremos os loops.

Dans cet exemple, je vais afficher tous articles avec l’étiquette «content», en utilisant la balise conditionnelle « has_tag() ». Cela signifie que je vais devoir parcourir trois boucles :

  • A primeira verificação se a consulta postou itens com essa tag.
  • Nesse caso, o segundo exibe os artigos com esse rótulo.
  • Um terceiro exibe artigos sem essa tag.

Crie facilmente seu site com Elementor

Elementor permite criar facilmente qualquer design de site com uma aparência profissional. Pare de pagar caro pelo que você pode fazer por si mesmo. [Grátis]

Entre chaque boucle, je vais utiliser rewind_posts() pour rembobiner les messages sans réinitialiser la requête : nous travaillons toujours avec la requête principale à chaque fois.

O primeiro loop: verificação de artigos

Dans votre fichier « category.php », trouvez le début de la boucle :

while (have_posts ()): the_post ();

Acima desta linha, defina uma nova variável chamada $ count:

$ Count = 0;

Em seguida, dentro desse loop, adicione este código:

// check if there are any posts with the » tag

$tag = ‘content’;

if ( has_tag( $tag ) ) {

$count +=1;

}

Ce code vérifie si les messages ont l’étiquette «content» puis ajoute 1 au compteur si oui.

O interior do loop será semelhante a este:

// Check for posts in the first loop.

$ Count = 0;

while (have_posts ()): the_post ();

// check if there are any posts with the » tag

$tag = ‘content’;

if ( has_tag( $tag ) ) {

$count +=1;

}

EndWhile;

O segundo loop: restaurar artigos com a tag

O próximo passo é fazer um loop para exibir itens com essa tag, apenas se houver algum.

Por exemplo, se o valor de $ count for maior que 0.

Descubra também Como personalizar o painel do WordPress para um cliente

Adicione esta condição ao loop:

if ( $count > 0 ) {

rewind_posts();

echo ‘<h2>Posts tagged with ‘ . $tag . ‘</h2>’;

while (have_posts ()): the_post ();

if ( has_tag( $tag ) ) {

get_template_part( ‘includes/loop’, ‘category’);

}

// End the loop.

EndWhile;

}

Esse código verifica se $ count é maior que zero e, se for o caso, rebobina os itens e executa o loop novamente. Para cada item, ele verifica se possui nossa etiqueta e, se houver, chama a parte do modelo que acabamos de criar.

O terceiro loop: veja o restante dos artigos

La sortie sera une boucle finale sur les articles restants. Si cette catégorie n’a pas d’article avec l’étiquette « content », alors elle affichera tous les articles de la catégorie.

Aprenda também Como criar um blog multi-autor e permitir que seus leitores para publicar artigos em seu blog

No seu segundo loop, adicione isto:

rewind_posts();

// Second Loop – posts not with the ‘content’ tag

while (have_posts ()): the_post ();

if ( !has_tag( $tag ) ) {

get_template_part( ‘includes/loop’, ‘category’);

}

// End the loop.

endwhile; ?>

Ce dernier code rembobine les articles, puis exécute à nouveau la boucle. Cette fois, il vérifie si un article ne possède pas l’étiquette «content» alors, il affiche le contenu dans le « template-part ».

Crie facilmente sua loja online

Baixe gratuitamente o WooCommerce, os melhores plugins de e-commerce para vender seus produtos físicos e digitais no WordPress. [FREE]

Sugerimos também que você descubra Como adicionar uma impressão artigos de opções sobre WordPress

Vous pouvez maintenant tester la page des articles de votre blog. N’oubliez pas que vous pouvez modifier les filtres. Dans ce tutoriel nous avons utilisé « content » comme filtre des étiquettes, mais vous pourrez utiliser celui de votre choix.

Descubra também alguns plugins premium do WordPress

Você pode usar outros plugins do WordPress para dar uma aparência moderna e otimizar a aderência do seu blog ou site.

Oferecemos a você aqui alguns plugins premium do WordPress que ajudarão você a fazer isso.

1. Social Wall Addon para UserPro

O UserPro pode ser muito mais divertido com um mural social. É isso que sua extensão Social Wall traz. Com a extensão Social Wall, você pode criar um mural no seu site e oferecer a seus membros uma maneira refrescante de interagir com a comunidade.

O plugin WordPress Social Wall permite que seus usuários: compartilhem mensagens entre eles, compartilhem imagens, comente nas postagens de outras pessoas, os usuários podem gostar ou não de uma mensagem, eles podem optar por exibir o mural apenas para usuários usuários logados ou para todos os usuários, os administradores podem excluir postagens ou comentários dos usuários etc.

Descarregar | Demo | hospedagem na web

2. Flipkart Affiliate Plus

O Flipkart Affiliate Plus é um plugin modular do WordPress que conecta seu site WordPress à API do Flipkart Affiliate.

Este plugin do WordPress facilita a importação de dados do produto do Flipkart e os atualiza diretamente no seu site. O Flipkart Affiliate Plus é o primeiro plugin do WordPress para a API oficial do Flipkart. Ao usá-lo, você não precisará usar uma API de terceiros. Você se beneficia totalmente do seu trabalho.

Descarregar | Demo | hospedagem na web

3. Google Analytics acionável para o WooCommerce

O Google Analytics acionável é um plug-in do WordPress que permite usar alguns dos melhores recursos do Universal Analytics, incluindo: Comércio eletrônico avançado e rastreamento de ID do usuário. Além disso, este plugin suporta o anonimato de endereços IP, o reembolso de produtos, o agrupamento de conteúdo, o rastreamento de formulários, etc.

Ao usar este plug-in do WordPress, você economizará tempo na integração de códigos complexos do Google Analytics para poder se concentrar no gerenciamento de seus dados.

Suas principais características são: instalação rápida e fácil, acesso a relatórios aprimorados de comércio eletrônico 9, a possibilidade de estudar como diferentes dispositivos são usados ​​pelo mesmo usuário e como as compras são feitas, a capacidade de analisar os produtos que são pagos com mais frequência, finalmente tomar medidas corretivas e muito mais.

Descarregar | Demo | hospedagem na web

Outros recursos recomendados

Também convidamos você a consultar os recursos abaixo para aprofundar o controle e controle do seu site e blog.

Conclusão

Voilà ! C’est tout pour ce tutoriel assez technique. J’espère que nous avons été explicite sur comment utiliser correctement WP_Query sur WordPress. N’hésitez pas à compartilhe a dica com seus amigos em suas redes sociais.

No entanto, você também poderá consultar nossos Ressources, se você precisar de mais elementos para realizar seus projetos de criação de sites da Internet, consultando nosso guia no site Criação de blog WordPress.

Mas enquanto isso, conte-nos sobre o seu Comentários e sugestões na seção dedicada.

...

Este artigo contém comentários 7
  1. ___________ ________ _____ ____________
    | Artigo 1 | | artigo 2 | | _A3_ | | |
    | __________ | | _______ | _____ Artigo 6 |
    ______________________ | 5 | |
    | _________ 4 _________ | | ____ | | ___________ |

  2. Olá Blair
    obrigado por estes tutoriais Parfais,
    Peço um pouco de ajuda por favor.
    Crio meu próprio tema wordpres (html / css) e tenho um problema que tentarei desenvolver: planejo criar um site semelhante ao msn.com, meu site será dividido em várias divisões (seções ) que são: notícias, entretenimento, saúde, estilo de vida ... etc. isto é, desejo realizar um primeiro grupo de artigos e um segundo grupo, um terceiro ... etc. mas mostre todos os grupos na mesma página e cada grupo pertence a uma categoria (nicho). Gostaria de saber se este back office wordpress pode gerenciar o conteúdo de cada tópico separadamente? com o loop wordpress // Conteúdo da postagem Desculpe, não foram encontradas postagens! Recebo uma mistura de itens:
    que é dizer que o meu último artigo escrito é colocado diretamente sobre a primeira seção que são notícia, enquanto este é um artigo que pertence a tal estilo de vida.
    Me deparei com esta página https://codex.wordpress.org/fr:La_Boucle Acho que a parte múltiplos loops pode resolver o meu problema!
    Espero que você entenda o que estou tentando dizer

    Agradecemos antecipadamente pela sua resposta,
    Atenciosamente,

    1. Bom Dia,
      Eu acho que você complicar o seu trabalho para nada. Já que eu entendo é que você quer organizar os itens em categorias (categoria), e cada item pode pertencer a um nicho, que pode ser categorias relativas. Sim, o laço pode ajudá-lo a fazê-lo, e é uma impressionante simplicidade.
      Coragem!

      1. Bonjour.
        Em primeiro lugar, obrigado pela sua resposta rápida. Eu acho que o tema que acabei de criar não é mais compatível com o wordpress e é daí que vem o problema.
        em comentários feitos desde a sua não apoiar a imagem anexada eu vou explicar por desenho:
        aqui é um site de categorias
        ___________ ________ _____ ____________
        | Artigo 1 | | artigo 2 | | _A3_ | | | então imagine que cada artigo é
        | __________ | | _______ | _____ Artigo 6 | representado por um bloco; então nós temos o 6
        ______________________ | 5 | | artigos (cada bloco contém a imagem
        | _________ 4 _________ | | ____ | | ___________ | e o título de um artigo em particular)

        Meu verdadeiro problema, Sr. Blair, é que não consigo concluir meus artigos para que eles possam passar do bloco 1 para o bloco 6, ou seja, quando adiciono um novo artigo e que Eu o publico. Quero que este último substitua o artigo 1 como em todos os temas existentes.
        - Eu acho que é irrealizável, já que cada post (artigo) tem suas próprias propriedades, como localização, altura, largura ... etc, o que você acha?
        Claro que a idéia é um pouco obscura com este esquema, caso contrário, se eu não incomodá-lo e você gostaria de me ajudar, você tem meu e-mail (você só precisa enviar um e-mail contendo seu nome).

        Obrigado novamente por suas repensa

        1. Boa noite, nesse caso em particular, você terá que pular com variáveis ​​do tipo "int", então, a cada vez que o loop de loop, você incrementar a variável e, dependendo do valor da variável, você pode alterar o exibição do artigo. Por exemplo:

          if ($ i == 1) {
          // seu código aqui
          } Else if ($ i == 2) {
          // tais
          }
          $ I ++;

          Infelizmente, eu não posso ajudá-lo pessoalmente neste momento.

  3. [...] Neste tutorial eu vou te ensinar como usá-los de forma mais eficaz WP_Query consultas sobre WordPress. [...]

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios estão marcados com *

Este site usa Akismet para reduzir indesejados. Saiba mais sobre como seus dados de comentários são usados.

De volta ao topo