Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Menguasai WP_Query: Menggunakan Loop

by
Read Time:6 minsLanguages:
This post is part of a series called Mastering WP_Query.
Mastering WP_Query: An Introduction
Mastering WP_Query: Related Functions

Indonesian (Bahasa Indonesia) translation by Ari Ana (you can also view the original English article)

Seperti yang saya gambarkan dalam pendahuluan pada seri ini, kelas WP_Query memiliki empat elemen utama:

  • argumen untuk kueri, menggunakan parameter yang akan dibahas secara rinci dalam seri ini
  • kueri itu sendiri
  • loop, yang akan menampilkan konten posting, judul, atau apapun yang ingin Anda tampilkan
  • penghabisan: penutupan tag if dan while dan setel ulang data posting

Dalam tutorial ini saya akan menunjukkan cara menggunakan loop dengan WP_Query, termasuk dua cara utama untuk menyusun loop Anda dan bagaimana menggunakan banyak loop.

Dimana Loop Sesuai

Tanpa sebuah loop, tidak ada yang akan ditampilkan di halaman Anda. Setelah WordPress menjalankan kueri, dengan menggunakan argumen yang telah Anda tetapkan, maka ia perlu diberi tahu apa yang harus dikeluarkan dari data yang diambilnya. Di sinilah loop berfungsi.

Jadi loop muncul setelah kueri Anda, dan itu menggunakan tiga tag:

  • if( $query->have_posts() ) memeriksa apakah ada posting.
  • while( $query->have_posts() ) mengulangi loop untuk setiap posting selama ada posting yang akan diambil.
  • $query->the_post() mengakses posting tertentu.

Jadi di sinilah loop sesuai di kelas WP_Query:

Setelah menjalankan loop, semua yang tersisa untuk dilakukan adalah merapikan semuanya dengan menggunakan wp_reset_postdata().

Struktur Loop

Cara loop Anda terstruktur akan tergantung pada data apa yang ingin Anda tampilkan dari posting Anda. Berikut adalah contoh loop yang menampilkan judul posting, gambar unggulan dan kutipan. Anda akan menggunakan loop seperti ini di halaman arsip.

Loop ini menampilkan apa yang telah saya jelaskan di atas: gambar unggulan, judul dan kutipan.

Mengambil Loop Lebih Lanjut: Memeriksa Konten

Tapi terkadang Anda mungkin ingin menambahkan judul sebelum daftar posting Anda, atau Anda mungkin ingin menyertakan semuanya dalam elemen yang mengandungnya. Jika Anda menambahkan ini sebelum loop Anda, itu akan menjadi keluaran terlepas dari apakah kueri benar-benar mengembalikan data apa pun, yang berarti Anda dapat memiliki judul tanpa sesuatu di bawahnya, atau beberapa markup yang tidak perlu.

Ini sangat mudah untuk berkeliling dengan meletakkan elemen terlampir atau judul di dalam tag if Anda:

Di sini Anda bisa melihat bahwa saya telah memeriksa apakah ada posting yang diambil oleh kueri saya, dan jika ada saya telah membuka elemen yang berisi dan menambahkan sebuah judul.

Ini juga berguna jika Anda ingin mengeluarkan hasil kueri Anda sebagai daftar. Katakanlah saya ingin membuat daftar semua posting dalam kategori tertentu. Elemen ul tidak berada di dalam loop saya karena tidak berhubungan dengan satu posting tertentu, tapi saya hanya ingin mengeluarkannya jika ada posting-nya. Jadi saya menggunakan ini:

Ini memeriksa apakah kueri telah mengambil posting, dan jika ya, itu akan membuka elemen ul dan kemudian menjalankan loop.

Menjalankan Loops Tambahan

Penting untuk disadari bahwa sementara Anda dapat menggunakan WP_Query untuk menjalankan lebih dari satu loop, Anda harus mengatur ulang data posting dan memulai instance kedua WP_Query untuk melakukan ini. Ini karena masing-masing loops Anda akan mengeluarkan data berdasarkan argumen yang berbeda.

Contoh ini menampilkan kutipan dan gambar fitur untuk posting pertama dan kemudian hanya judul setiap posting berikutnya:

Saya telah menggunakan dua argumen kunci di sini:

  • 'posts_per_page' => '1', yang digunakan dengan kueri pertama, hanya menampilkan posting terbaru.
  • 'offset' = '1', yang digunakan dengan kueri kedua, melewatkan posting pertama, memastikannya tidak terulang dalam daftar di bawahnya.
  • Seperti yang dapat Anda lihat dari kode di atas, loop sedikit berbeda untuk setiap kueri. Yang pertama mengeluarkan gambar unggulan, judul dan kutipan, sementara yang kedua memeriksa apakah kueri memiliki posting dan jika demikian, buka elemen ul dan lampirkan setiap judul posting di elemen li dan tautan ke halamannya.

Anda juga akan melihat bahwa saya menggunakan wp_reset_postdata() setelah kedua loop. Jika saya tidak melakukan ini, loop kedua masih akan mengeluarkan data dari yang pertama.

Ringkasan

Tanpa sebuah loop, WP_Query tidak terlalu banyak bekerja. Loop adalah kode yang Anda gunakan untuk menampilkan data yang telah diambil WordPress dari database berdasarkan argumen kueri Anda.

Seperti yang telah saya tunjukkan, ada beberapa variasi dalam loop. Sebuah loop sederhana hanya akan menampilkan semua posting sesuai urutan yang Anda tentukan dalam argumen kueri Anda (atau berdasarkan tanggal dalam urutan menurun secara default). Jika Anda memisahkan if( $query->have_posts() ) dan while( $query->have_posts() ), Anda dapat memasukkan markup tambahan di luar loop Anda, namun hanya jika kueri Anda mengembalikan data. Dan akhirnya, dengan menentukan argumen alternatif dan menggunakan wp_reset_postdata() setelah setiap loop, Anda dapat menggunakan WP_Query lebih dari satu kali untuk membuat banyak loop pada halaman Anda.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.