Sou um grande fã da classe WP_Query: eu a uso em vários sites de clientes para buscar e exibir dados de uma forma personalizada.
Se você quiser usar vários loops em uma página, a melhor maneira de fazer isso é executar "WP_Query" sempre que precisar fazer um loop.
Mas há uma desvantagem: sempre que o WordPress executa um loop, ele envia consultas ao banco de dados, o que leva mais tempo e pode desacelerar o seu site.
Neste tutorial, mostrarei como usar uma consulta para mais de um loop. Você pode fazer isso com a consulta principal ou pode usar a mesma técnica com 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
Esta técnica também se adapta à sua situação e ao seu tema WordPress.
Criando um tema filho
Primeiro, vamos criar o tema filho de vinte e dezesseis. Estou fazendo isso porque não quero mudar o tema pai.
Discover Como instalar um tema criança WordPress
Na sua pasta "wp-content / themes", crie uma nova pasta vazia, que você chamará de "tutor-theme". Mais tarde, você pode escolher o nome que mais lhe convier.
Nesta pasta, crie um arquivo chamado style.css e adicione o seguinte código:
/*
Nome do Tema: Tema Tuto
URI do tema: https://blogpascher.com
Descrição: Tema para dar suporte ao Tutorial sobre a execução de vários loops ao consultar o banco de dados apenas uma vez. Tema filho para o tema Twenty Sixteen.
Autor: Hervé
Autor URI: https://blogpascher.com
Predefinição: twentysixteen
Versão: 1.0
*/
@import url ("../twentysixteen/style.css");
Agora salve este arquivo e ative seu novo tema WordPress.
A próxima etapa é criar um arquivo de modelo para as categorias, é nisso que estaremos trabalhando.
Faça uma cópia do arquivo “archive.php” do tema WordPress “Vinte e dezesseis.” Não o mova, mas faça uma cópia dele. Renomeie-o como “categoria.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
A primeira etapa é criar um novo arquivo de modelo em nosso tema que conterá uma versão modificada do loop "vinte e dezesseis".
Vamos também consultar juntos Como colocar seu site WordPress no modo Manutenção
Na pasta do tema filho, crie uma subpasta chamada "inclui". E por dentro, crie um novo arquivo chamado "loop-category.php".
Em seguida, abra o arquivo "template-parts / content.php" nas pastas do tema pai (vinte e dezesseis) e encontre o seguinte código:
" >
', esc_url (get_permalink ())),' '); ?>
/ * tradutores:% s: nome da postagem atual * /
the_content (sprintf (
__ ('Continue lendo '% s ' ', 'vinte e dezesseis'),
get_the_title ()
));
wp_link_pages (matriz (
'antes' => ' '. __ ('Páginas:', 'vinte e dezesseis'). ' ',
'depois de' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Página', 'vinte e dezesseis'). ' %',
'separator' => ' , ',
));
?>
edit_post_link (
sprintf (
/ * tradutores:% s: nome da postagem atual * /
__ ('Editar '% s ' ', 'vinte e dezesseis'),
get_the_title ()
),
' ',
''
);
?>
Copie esse código no novo arquivo "loop-category.php" do tema filho.
Editando o arquivo de parte do modelo
O loop "vinte e dezesseis" mostra mais do que eu preciso, então irei modificar este código. Eu só quero mostrar o snippet e não o conteúdo, então vamos remover o conteúdo.
Qual é a diferença entre H1 e o título de SEO de um artigo do WordPress? Descubra consultando este artigo.
No seu novo arquivo loop-category.php, encontre este código e exclua-o:
<div class = "entry-content">
/ * tradutores:% s: nome da postagem atual * /
the_content (sprintf (
__ ('Continue lendo '% s ' ', 'vinte e dezesseis'),
get_the_title ()
));
wp_link_pages (matriz (
'antes' => ' '. __ ('Páginas:', 'vinte e dezesseis'). ' ',
'depois de' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Página', 'vinte e dezesseis'). ' %',
'separator' => ' , ',
));
?>
A outra etapa é substituir a função "vigésimo-dezesseis_excerpt ()" pela função "the_excerpt ()", porque a versão vinte e dezesseis não fornece um link para o artigo completo.
Veja também Como visualizar os artigos recentes em uma categoria específica
Encontre esta linha:
Substitua por:
Também precisamos fazer algumas alterações nas tags de título.
Na parte do modelo, altere a linha:
', esc_url (get_permalink ())),' '); ?>
Edite as tags H2 para H3:
', esc_url (get_permalink ())),' '); ?>
Registre seu modelo. Em seguida, volte ao seu arquivo category.php e continuaremos com ele.
Criando loops
Em primeiro lugar vamos remover a inclusão do código "vinte e dezesseis" do nosso arquivo "category.php", pois precisaremos usar o novo arquivo.
No seu arquivo category.php, encontre este código:
get_template_part ('template-parts / content', get_post_format ());
E exclua o.
Então, criaremos os loops.
Neste exemplo, exibirei todas as postagens com a tag "content", usando a tag condicional "has_tag ()". Isso significa que terei que passar por três loops:
- 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.
Entre cada loop, usarei rewind_posts () para retroceder as mensagens sem redefinir a consulta: sempre trabalhamos com a consulta principal.
O primeiro loop: verificação de artigos
No seu arquivo "category.php", localize o início do loop:
while (have_posts ()): the_post ();
Acima desta linha, defina uma nova variável chamada $ count:
$ Count = 0;
Então, dentro desse loop, adicione este código:
// verifique se há alguma postagem com a tag »
$ tag = 'conteúdo';
if (has_tag ($ tag)) {
$ count + = 1;
}
Este código verifica se as mensagens têm o rótulo "conteúdo" e adiciona 1 ao contador se tiver.
O interior do loop será semelhante a este:
// Verifique as postagens no primeiro loop.
$ Count = 0;
while (have_posts ()): the_post ();
// verifique se há alguma postagem com a tag »
$ tag = 'conteúdo';
if (has_tag ($ tag)) {
$ count + = 1;
}
EndWhile;
O segundo loop: restaurar artigos com a tag
A próxima etapa é fazer um loop para exibir artigos com esta 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 ();
eco ' Postagens marcadas com '. $ tag. ' ';
while (have_posts ()): the_post ();
if (has_tag ($ tag)) {
get_template_part ('inclui / loop', 'categoria');
}
// Finalize o 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
A saída será um loop final nos artigos restantes. Se esta categoria não tiver um artigo com a tag “conteúdo”, ela exibirá todos os artigos da categoria.
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 ();
// Segundo Loop - posts sem a tag 'content'
while (have_posts ()): the_post ();
if (! has_tag ($ tag)) {
get_template_part ('inclui / loop', 'categoria');
}
// Finalize o loop.
fim; ?>
Este último código retrocede os artigos e, em seguida, executa o loop novamente. Desta vez, ele verifica se um artigo não possui a tag “content”, então exibe o conteúdo na “parte do modelo”.
Sugerimos também que você descubra Como adicionar uma impressão artigos de opções sobre WordPress
Agora você pode testar a página de artigos do seu blog. Lembre-se de que você pode alterar os filtros. Neste tutorial, usamos o "conteúdo" como um filtro de etiquetas, mas você pode usar o de sua escolha.
Descubra também alguns plugins premium do WordPress
Você pode usar outro WordPress plugins para dar uma aparência moderna e otimizar o manuseio 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
UserPro pode ser muito mais divertido com uma parede social. É isso que traz a extensão do Social Wall. Com o plugin Social Wall, você pode criar um mural em seu site e fornecer aos seus membros uma maneira renovada de interagir com a comunidade.
Le WordPress Plugin O Mural Social permite que seus usuários: compartilhem mensagens uns com os outros, compartilhem imagens, comentem as 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 logados ou para todos os usuários, os administradores podem excluir postagens ou comentários de usuários etc.
Descarregar | Demo | hospedagem na web
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus é um WordPress Plugin módulo que conecta seu site WordPress à API de afiliados do Flipkart.
Ce WordPress Plugin Torna muito fácil importar dados de produtos do Flipkart e atualizá-los diretamente no seu site. Flipkart Affiliate Plus é o primeiro plugin WordPress para a API oficial do Flipkart. Ao usá-lo, você não precisará usar uma API de terceiros. Assim, você se beneficia plenamente do seu trabalho.
Descarregar | Demo | hospedagem na web
3. Google Analytics acionável para o WooCommerce
O Actionable Google Analytics é um plug-in WordPress que permite usar alguns dos melhores recursos do Universal Analytics, incluindo: comércio eletrônico avançado e rastreamento de ID de usuário. Além disso, este plugin suporta a anonimização de endereços IP, reembolsos de produtos, agrupamento de conteúdo, rastreamento de formulário, 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 9 relatórios de e-Commerce aprimorados, capacidade de estudar como diferentes dispositivos são usados pelo mesmo usuário e como as compras são feitas, a capacidade de analisar quais produtos são reembolsados 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
Aqui ! Isso é tudo para este tutorial bastante técnico. Espero que tenhamos sido explícitos sobre como usar corretamente WP_Query no WordPress. sinta-se livre para 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.
...
Olá
Em qualquer caso, muito obrigado por suas respostas e desejo-lhe boa sorte
obrigado
___________ ________ _____ ____________
| Artigo 1 | | artigo 2 | | _A3_ | | |
| __________ | | _______ | _____ Artigo 6 |
______________________ | 5 | |
| _________ 4 _________ | | ____ | | ___________ |
Olá Blair
obrigado por estes tutoriais Parfais,
Eu gostaria de pedir uma ajudinha, por favor.
Criei meu próprio tema Wordpres (html / css) e encontrei um pequeno problema que tentarei resolver para você: pretendo criar um site semelhante ao msn.com meu site será dividido em várias divisões (títulos ) que são: notícias, entretenimento, saúde, estilo de vida ... etc. isto é, quero fazer um primeiro grupo de artigos e um segundo grupo, um terceiro ... etc. mas exiba todos os grupos na mesma página e que cada grupo pertence a uma seção (nicho). Será que esse back office do wordpress pode gerenciar o conteúdo de cada seção separadamente? com o loop wordpress // Postar conteúdo desculpe, nenhuma postagem encontrada! Recebo uma mistura de itens:
ou seja, meu último artigo escrito é colocado diretamente na primeira seção que é notícia, ao passo que é um artigo que pertence ao estilo de vida, por exemplo.
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,
Bom Dia,
Acho que você está complicando sua vida por nada. Já o que entendi é que você deseja organizar seus artigos em categorias (seção) e cada seção pode pertencer a um nicho, que pode ser categorias pai. Sim, o loop pode ajudá-lo a fazer isso e é impressionantemente simples.
Coragem!
Bonjour.
em primeiro lugar, obrigado por sua pronta resposta. Acho que o tema que acabei de criar não é mais compatível com o wordpress e é daí que vem o problema.
Na verdade, como seus comentários não suportam a imagem anexada, explicarei desenhando:
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 | | | itens (cada peça contém a imagem
| _________ 4 _________ | | ____ | | ___________ | e o título de um determinado artigo)
meu verdadeiro problema, senhor Blair, é que não consigo embrulhar meus artigos para que eles possam passar do quadrado 1 ao quadrado 6, ou seja, quando adiciono um novo item e Eu o publico e quero que tome o lugar do artigo 1 como em todos os temas existentes.
- Acho isso impraticável já que cada postagem (artigo) tem suas propriedades como localização, altura, largura ... etc, o que você acha então?
claro que a ideia fica um pouco clara com este diagrama, caso contrário, se eu não me importar e você quiser me ajudar, você tem o meu e-mail (basta enviar um e-mail com o seu nome).
Obrigado novamente por suas repensa
Boa noite, neste caso, você precisará adicionar variáveis do tipo "int", assim, cada vez que o loop loop, você irá incrementar a variável e de acordo com o valor da variável, você pode modificar l 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.