Loncat ke Konten Utama

Cara yang benar menggunakan WP_Query di WordPress

Divi: tema WordPress termudah untuk digunakan

Divi: Tema WordPress terbaik sepanjang masa!

lebih 600.000 unduhan, Divi adalah tema WordPress paling populer di dunia. Sudah lengkap, mudah digunakan dan dilengkapi dengan lebih dari 62 template gratis. [Direkomendasikan]

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.

Jika Anda ingin menggunakan banyak loop pada halaman, cara terbaik untuk melakukannya adalah dengan menjalankan "WP_Query" setiap kali Anda harus mengulang.

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.

Kami akan menjelajahi aspek 3:

  • Buat tema anak dan file template.
  • Buat potongan model untuk konten loop.
  • Buat loop kami.

Tapi sebelum kita temukan bersama Cara menginstal blog WordPress di langkah 7 et Cara mencari, menginstal dan mengaktifkan tema WordPress di blog Anda

Lalu kembali ke mengapa kita ada di sini.

Apa yang kamu butuhkan

Untuk mengikuti tutorial ini, Anda akan perlu:

  • Dari instalasi WordPress untuk pengembangan (lokal).
  • Editor kode.
  • Artikel di situs web Anda dengan beberapa kategori ditugaskan
  • dua puluh enam belas tema WordPress
  • Tema anak dua puluh enam belas diinstal dan diaktifkan

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

Menciptakan tema anak

Pertama, kita akan membuat tema anak dua puluh enam belas. Saya melakukan ini karena saya tidak ingin mengubah tema induk.

Menemukan Cara memasang tema anak 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 :

/*

Nama Tema: Tema Tuto

Tema URI: https://blogpascher.com

Deskripsi: Tema untuk mendukung Tutorial cara menjalankan banyak loop sambil menanyakan database hanya sekali. Tema anak untuk tema Twenty Sixteen.

Author: Hervé

Penulis URI: https://blogpascher.com

Templat: twentysixteen

Versi: 1.0

*/

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

Sekarang simpan file ini dan aktifkan tema WordPress baru Anda.

Langkah selanjutnya adalah membuat file template untuk kategori, itulah yang akan kita kerjakan.

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 ».

Untuk melangkah lebih jauh, temukan Bagaimana mengelola file dan folder WordPress

Ini sekarang akan menjadi file templat untuk kategori situs web Anda.

Membuat file template baru

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 ».

Mari juga berkonsultasi bersama Cara menempatkan situs WordPress Anda dalam mode Pemeliharaan

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 »>

<? Php

/ * penerjemah:% s: Nama tulisan saat ini * /

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>',

Buat Website Anda dengan Mudah dengan Elementor

Elementor memungkinkan Anda untuk dengan mudah membuat desain situs web apa pun dengan tampilan profesional. Berhentilah membayar mahal untuk apa yang dapat Anda lakukan sendiri. [Gratis]

‘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 (); ?>

<? Php

edit_post_link (

sprintf (

/ * penerjemah:% s: Nama tulisan saat ini * /

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

get_the_title ()

),

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

</ Span> '

);

?>

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

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

Salin kode ini ke file "lingkaran-kategori.php" baru dari tema anak.

Mengedit file templat-bagian

Loop "dua puluh enam belas" menampilkan lebih dari yang saya butuhkan, jadi saya akan memodifikasi kode ini. Saya hanya ingin menunjukkan cuplikan dan bukan kontennya, jadi kami akan menghapus kontennya.

Apa perbedaan antara H1 dan judul SEO dari artikel WordPress? Cari tahu dengan membaca artikel ini.

Di file loop-category.php baru Anda, cari kode ini dan hapus kode ini:

<div class= »entry-content »>

<? Php

/ * penerjemah:% s: Nama tulisan saat ini * /

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.

Lihat juga Cara melihat artikel terbaru dalam kategori tertentu

Temukan baris ini:

? <Php twenty_sixteen_excerpt (); ?>

Ganti dengan ini:

? <Php the_excerpt (); ?>

Kami juga perlu membuat beberapa perubahan pada tag judul.

Di bagian model, ubah baris:

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

Edit tag H2 untuk 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.

Membuat loop

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.

Di file category.php Anda, temukan kode ini:

get_template_part ('templat-bagian / konten', get_post_format ());

Dan hapus.

Kemudian kita akan membuat loop.

Apakah Anda mencari tema dan plugin WordPress terbaik?

Unduh plugin dan tema WordPress terbaik dari Envato dan buat situs web Anda dengan mudah. Sudah lebih dari 49.720.000 unduhan. [EKSKLUSIF]

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 :

  • Pemeriksaan pertama apakah kueri telah memposting item dengan tag ini.
  • Jika demikian, yang kedua menampilkan artikel dengan label ini.
  • Yang ketiga menampilkan artikel tanpa tag ini.

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.

Loop pertama: Verifikasi artikel

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

sementara (have_posts ()): the_post ();

Di atas garis ini, tentukan variabel baru yang disebut $ count:

$ Hitung = 0;

Lalu, di dalam loop ini, tambahkan kode ini:

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

$ tag = 'konten';

if (has_tag ($ tag)) {

$ count + = 1;

}

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

Bagian dalam loop akan serupa dengan ini:

// Periksa posting di loop pertama.

$ Hitung = 0;

sementara (have_posts ()): the_post ();

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

$ tag = 'konten';

if (has_tag ($ tag)) {

$ count + = 1;

}

endwhile;

Loop kedua: Kembalikan artikel dengan tag

Langkah selanjutnya adalah mengulang untuk menampilkan item dengan tag ini, hanya jika ada.

Misalnya, jika nilai $ count lebih besar dari 0.

Temukan juga Bagaimana untuk menyesuaikan dashboard WordPress untuk klien

Tambahkan kondisi ini ke loop:

if ($ count> 0) {

rewind_posts ();

echo '<h2> Posting yang ditandai dengan'. $ tag. </ H2> ';

sementara (have_posts ()): the_post ();

if (has_tag ($ tag)) {

get_template_part ('include / loop', 'kategori');

}

// Akhiri loop.

endwhile;

}

Kode ini memverifikasi bahwa $ count lebih besar dari nol dan jika demikian, memundurkan item dan menjalankan loop lagi. Untuk setiap item yang diperiksa apakah itu memiliki label kami dan, jika demikian, ia menyebut bagian dari template yang baru saja kami buat.

Loop ketiga: Lihat seluruh artikel

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.

Belajar juga Cara membuat blog multi-penulis dan memungkinkan pembaca Anda untuk mempublikasikan artikel di Blog Anda

Di loop kedua Anda, tambahkan ini:

rewind_posts ();

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

sementara (have_posts ()): the_post ();

if (! has_tag ($ tag)) {

get_template_part ('include / loop', 'kategori');

}

// Akhiri loop.

endwhile; ?>

Buat Toko Online Anda dengan Mudah

Unduh WooCommerce gratis, plugin e-commerce terbaik untuk menjual produk fisik dan digital Anda di WordPress. [Direkomendasikan]

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 ».

Kami juga menyarankan Anda untuk menemukannya Bagaimana cara menambahkan opsi pencetakan artikel di 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.

Temukan juga beberapa plugin WordPress premium

Anda dapat menggunakan plugin WordPress lainnya untuk memberikan tampilan modern dan mengoptimalkan cengkeraman blog atau situs web Anda.

Kami menawarkan kepada Anda beberapa plugin WordPress premium yang akan membantu Anda melakukannya.

1. Dinding Sosial Addon untuk UserPro

UserPro dapat menjadi jauh lebih menyenangkan dengan dinding sosial. Inilah yang dibawa ekstensi Wall Sosial. Dengan ekstensi Dinding Sosial, Anda dapat membuat dinding di situs web Anda dan menawarkan anggota Anda cara menyegarkan untuk berinteraksi dengan komunitas.

WordPress Sosial Dinding Plugin memungkinkan pengguna Anda termasuk: pesan berbagi satu sama lain, gambar berbagi, mengomentari publikasi lain, pengguna dapat suka atau tidak suka pesan, mereka dapat memilih untuk menampilkan hanya untuk dinding pengguna yang masuk atau untuk semua pengguna, administrator dapat menghapus posting atau komentar dari pengguna, dll.

Download | Demo | Hosting Web

2. Afiliasi Flipkart Plus

Flipkart Affiliate Plus adalah plugin WordPress modular yang menghubungkan situs web WordPress Anda ke Flipkart Affiliate API.

Plugin WordPress ini memudahkan untuk mengimpor data produk dari Flipkart dan memutakhirkannya langsung ke situs web Anda. Flipkart Affiliate Plus adalah plugin WordPress pertama untuk API resmi Flipkart. Dengan menggunakannya, Anda tidak perlu menggunakan API pihak ketiga. Anda mendapat manfaat penuh dari pekerjaan Anda.

Download | Demo | Hosting Web

3. Google Analytics yang dapat ditindaklanjuti untuk WooCommerce

Google Analytics yang dapat ditindaklanjuti adalah plugin WordPress yang memungkinkan Anda untuk menggunakan beberapa fitur terbaik dari Universal Analytics, termasuk: Enhanced Ecommerce dan Pelacakan ID Pengguna. Selain itu, plugin ini mendukung penganoniman alamat IP, penggantian produk, pengelompokan konten, pelacakan formulir, dll ...

Dengan menggunakan plugin WordPress ini, Anda akan menghemat waktu dalam integrasi kode Google Analytics yang kompleks, sehingga Anda dapat fokus dalam mengelola data Anda.

Fitur utamanya adalah: instalasi cepat dan mudah, akses ke 9 meningkatkan laporan e-Commerce, kemungkinan mempelajari bagaimana berbagai perangkat digunakan oleh pengguna yang sama dan bagaimana pembelian dilakukan, kemampuan untuk menganalisis produk yang dilunasi lebih sering, akhirnya mengambil tindakan perbaikan, dan lebih banyak lagi.

Download | Demo | Hosting Web

Sumber daya lain yang direkomendasikan

Kami juga mengundang Anda untuk berkonsultasi dengan sumber daya di bawah ini untuk melangkah lebih jauh dalam cengkeraman dan kontrol situs web dan blog Anda.

Kesimpulan

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 à berbagi kiat dengan teman-teman Anda di jejaring sosial Anda.

Namun, Anda juga akan dapat berkonsultasi dengan kami ressources, jika Anda membutuhkan lebih banyak elemen untuk melaksanakan proyek pembuatan situs Internet Anda, dengan berkonsultasi dengan pemandu kami di Pembuatan blog WordPress.

Tetapi sementara itu, beri tahu kami tentang Anda komentar dan saran di bagian khusus.

...

Artikel ini berisi komentar 7
  1. ___________ ________ _____ ____________
    | Artikel 1 | | arti 2 | | _A3_ | | |
    | __________ | | _______ | _____ | Artikel 6 |
    ______________________ | 5 | | |
    | _________ 4 _________ | | ____ | | ___________ |

  2. Hello Blair
    terima kasih untuk tutorial Parfais ini,
    Saya ingin meminta tolong sedikit tolong.
    j’ai créer mon propre thème wordpres (html/css) et j’ai rencontrer un petit problème je vais essayer de vous mettre au point : je compte creer un site semblable a msn.com mon site vas etre devisé a plusieurs divisions(rubriques) qui sont: news, divertissement, santé, lifestyle …etc. c’est a dire que je souhaite réaliser un premier groupe d’Article, et un deuxieme groupe, un troixieme …etc . mais afficher tous les groupes sur la même page et que chaque groupe appartiens a une rubrique(niche). je me demande si ce back office de wordpress peut gérer le contenue de chaque rubrique séparement ? avec la boucle wordpress //Post Content sorry, no posts found ! j’obtien un mélange d’articles :
    c’est a dire que mon dernier article écrit se place directement sur la premiere rubrique qui es news , alors que c’est un article qui appartiens a lifestyle par exemple .
    j’ai tombé sur cette page https://codex.wordpress.org/fr:La_Boucle je pense que la partie boucles multiples peut résoudre mon problème !
    Saya harap Anda mengerti apa yang ingin saya katakan

    merci par avance pour votre réponse,
    Cordialement,

    1. Halo,
      je pense que vous vous compliquez la tâche pour rien. Déjà ce que je comprend, c’est que vous souhaitez organiser vos articles en catégories (rubrique) et chaque rubrique peut appartenir à une niche, ce qui peut être des catégories parente. Oui la boucle peut vous aider à le faire, et c’est d’une simplicité impressionnante.
      Keberanian!

      1. Halo.
        d’abord je vous remercie pour votre réponse rapide. Je pense que le thème que je viens de créer n’est plus compatible a wordpress et que c’est d’ici ou viens le problème .
        Sebenarnya karena komentar Anda tidak mendukung gambar terlampir yang akan saya jelaskan dengan menggambar:
        voici donc une des catégories du site
        ___________ ________ _____ ____________
        | Artikel 1 | | arti 2 | | _A3_ | | | jadi bayangkan setiap artikel
        |__________| |_______| _____ | article 6 | représenté par un carreau ; on as donc 6
        ______________________ | 5 | | | artikel (setiap ubin berisi gambar
        | _________ 4 _________ | | ____ | | ___________ | dan judul artikel tertentu)

        mon vrais problème monsieur Blair, c’est que j’arrive pas a boucler mes articles pour qu’ils puissent se déplacer du carreau 1 vers le carreau 6 , c’est a dire que l’orsque j’ajoute un nouveau article et que je le publie je veux que ce dernier prend la place de l’article 1 comme dans tous les thèmes existants.
        – je pense que c’est irréalisable puisque chaque post(article) a ses propres propriétés tel que l’emplacement, la hauteur,la largeur …etc , que pensez vous alors ?
        bien sur l’idée est un peu claire avec ce schéma , sinon si je ne vous dérange pas et que vous voudriez m’aider, vous avez mon e-mail ( vous n’avez qu’as envoyer un courriel contenant votre nom ) .

        Terima kasih lagi untuk rethinks Anda

        1. Bonsoir, dans ce cas d’espèce, vous aurez besoin de jouter avec des variable de type « int », ainsi, chaque fois que la boucle loop, vous incrémenterez la variable et en fonction de la valeur de la variable, vous pourrez modifier l’affichage de l’article. Par exemple :

          if ($ i == 1) {
          // kode Anda di sini
          } Lain jika ($ i == 2) {
          // seperti
          }
          $ I ++;

          Sayangnya, saya tidak dapat membantu Anda secara pribadi saat ini.

  3. […] Dans ce tutoriel, je vais vous apprendre à utiliser les requêtes WP_Query plus efficacement sur WordPress. […]

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Kolom wajib ditandai dengan *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari lebih lanjut tentang bagaimana data umpan balik Anda digunakan.

Kembali ke atas
0 saham
saham
menciak
Register