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

Cara Mengekodkan Gelung Pelbagai Apabila Melakukan Pemeriksaan Pangkalan Data Sekali

by
Difficulty:IntermediateLength:MediumLanguages:

Malay (Melayu) translation by Rana Salsabiela (you can also view the original English article)

Saya seorang peminat kelas WP Query : Saya menggunakannya di banyak laman web klien saya untuk menyemak dan menjana kandungan secara teratur.

Jika anda ingin menjalankan beberapa gelung pada halaman, cara paling mudah untuk melakukan ini ialah menjalankan WP Query . Setiap kali anda perlu menjalankan satu gelung.  Tetapi ada kelemahan: setiap kali WordPress menjalankan pertanyaan, ia menghantar permintaan kepada pangkalan data, di mana ia memerlukan masa dan boleh melambatkan laman web anda.  Dan jika anda menggunakan WP Query dari pertanyaan utama untuk menjana kandungan, maka ia menjadikan permintaan utama menjadi berlebihan, yang merupakan pembaziran sumber.

Jadi, di sini, saya akan menunjukkan kepada anda cara menggunakan satu pertanyaan untuk menjalankan lebih daripada satu gelung.  Anda boleh melakukannya dengan pertanyaan utama (yang akan saya lakukan kerana lebih cekap) atau anda boleh menggunakan teknik yang sama dengan WP Query .

Terdapat tiga bahagian untuk ini:

  • Buat tema kanak-kanak dan fail templat.
  • Buat seksyen template untuk kandungan gelung. 
  • Buat gelung kami

Jadi mari kita mulakan!

Apa yang anda perlukan

Untuk mengikuti, anda perlu:

  • Pemasangan pemasangan WordPress.
  • Editor kod.
  • Penyajian di laman web anda dengan pelbagai kategori ditakrifkan-saya menggunakan data unit ujian tema WordPress .
  • Tema dua puluh enam belas dipasang di laman web anda. 
  • Tema kanak-kanak dua puluh enam belas dipasang dan diaktifkan - Saya akan membahas secara ringkas tema kanak-kanak di sini.

Anda tidak perlu menggunakan tema dua puluh enam belas-anda boleh menyesuaikan teknik ini untuk tema anda sendiri.  Tetapi saya akan menggunakan tema dua puluh enam belas kanak-kanak.

Mewujudkan Tema Kanak-kanak

Pertama, mari buat tema dua puluh enam belas kanak-kanak.  Saya melakukannya kerana saya tidak mahu menyunting tema dua puluh enam belas.

Dalam direktori wp-content / themes , buat folder kosong baru.  Mendapat saya ialah tutsplus-satu-query-dua-loop .

Dalam folder itu, buat fail bernama style.css dan tambahkannya ke dalamnya:

Sekarang simpan fail dan aktifkan tema baharu anda.

Langkah seterusnya adalah untuk membuat fail template untuk kategori, yang akan kami lakukan.

Buat salinan fail arkib.php dua puluh enam belas dalam tema baru anda. Jangan bergerak, tetapi salin.  Namakan semula category.php .  Ia kini menjadi fail template untuk kategori di laman web anda.

Membuat Fail Bahagian Templat Baharu

Langkah pertama ialah menyediakan fail seksyen template baru dalam tema kami yang akan mengandungi versi gelung yang diedit dua puluh enam belas. 

Dalam folder tema anda, buat subfolder yang dipanggil include .  Di dalamnya, buat fail baru yang dipanggil loop-category.php . 

Sekarang buka fail template-parts / content.php dua puluh enam belas fail dan cari kod ini (yang kebanyakan fail):

Salin ke fail baru anda.

Edit Seksyen Template

Satu gelang dua puluh enam lebih banyak daripada yang saya perlukan untuk arkib ini, jadi saya akan mengeditnya.  Saya hanya mahu memaparkan petikan itu dan bukan kandungan, jadi kami akan memadamnya.

Dalam fail loop-category.php baru anda, cari kod ini dan padamkannya:

Langkah lain ialah menggantikan fungsi twenty_sixteen_excerpt () dengan fungsi the_excerpt() lalai, kerana versi dua puluh twenty_sixteen_excerpt () tidak mengandungi pautan kepada penyiaran penuh.

Cari baris ini:

Gantikan dengan ini:

Kami juga perlu membuat beberapa tweak ke tajuk tag.

Dalam bahagian templat, edit baris:

Tukar tag h2 ke h3 :

Simpan bahagian fail templat anda.  Sekarang kembali ke fail category.php anda dan teruskan bekerjasama dengannya.

Mencipta Gelung Kami

Pertama, mari kita keluarkan template bahagian dua puluh enam belas dari fail kategori.php kita, kerana kita perlu menggunakan fail baru ini.

Dalam fail category.php anda dapati kod ini:

Padamkannya

Sekarang kita akan membuat gelung.

Dalam contoh ini, saya akan menyenaraikan semua catatan dengan tag 'kandungan' dahulu, menggunakan tag bersyarat has_tag () .

Ini bermakna saya perlu menjalankan tiga gelung:

  • Mula-mula, semak apakah pertanyaan telah mengembalikan pos dengan tag ini.
  • Jika ya, kedua, buat jawatan dengan tag ini.
  • Ketiga, menghasilkan jawatan tanpa tag ini.

Di antara setiap gelung, saya akan menggunakan rewind_posts () untuk mengundurkan semula pos tanpa menetapkan semula pertanyaan: setiap kali, kami masih bekerja pada pertanyaan utama.

Loop Pertama: Memeriksa Pos

Dalam fail category.php anda, cari permulaan gelung:

Di atas baris itu, tentukan pemboleh ubah baru yang dipanggil $count :

Sekarang di dalam gelung, tambahkan kod ini:

Ia menyemak jika siaran mempunyai tag 'kandungan' dan kemudian menambahkan 1 kepada kiraan jika ya.

Gelung anda harus kelihatan seperti ini:

Gelung Kedua: Mengeluarkan Pos dengan Teg

Langkah seterusnya adalah untuk menjalankan gelung untuk menjana pos dengan tag itu, tetapi hanya jika ia wujud, iaitu jika nilai $count lebih besar daripada 0

Tambah ini di bawah gelung pertama anda:

Ia memeriksa bahawa $count lebih besar dari sifar dan jika demikian, jawatan yang mundur dan gelung lari lagi.  Untuk setiap siaran, ia menyemak jika siaran mempunyai tag kami dan, jika ya, ia menyeru bahagian templat yang baru kami buat.

Gelung Ketiga: Mengeluarkan Catatan Kekal

Gelung terakhir akan memaparkan jawatan yang tinggal.  Jika kategori ini tiada jawatan dengan 'kandungan' tag, maka kategori ini akan menunjukkan semua entri dalam kategori tersebut.

Di bawah gelung kedua anda, tambah ini:

Dia mengundurkan semula jawatan (yang akan anda lakukan buat kali pertama jika tidak ada jawatan dengan tag atau untuk kali kedua jika ada), dan kemudian jalankan gelung sekali lagi.  Kali ini, ia menyemak jika siaran tiada tag 'kandungan' dan kemudian menariknya menggunakan bahagian templat kami.

Arkib Selesai

Sekarang, tentukan halaman arkib kategori di laman web anda.

Jika anda menggunakan data unit ujian WordPress seperti saya, anda akan mendapati bahawa kategori 'Markup' mempunyai tag dengan tag 'kandungan'. Berikut ialah kategori halaman arkib untuk kategori 'Markup' di laman web saya:

The category page with two loops

Ringkasan

Menjalankan pelbagai gelung dari satu pertanyaan tidak rumit.  Daripada menetapkan semula pertanyaan dan membuat yang baru, anda hanya menggunakan fungsi rewind_posts () untuk memundurkan semula pertanyaan dan mengendalikannya lagi.  Dan bukannya menentukan parameter pertanyaan baharu, anda boleh menggunakan tag bersyarat untuk menentukan siaran yang hendak dikeluarkan.

Nota penting: Jangan digoda untuk menggunakan query_posts () untuk menukar pertanyaan utama.  Apabila anda melakukannya, ia akan melambatkan laman web anda lebih perlahan daripada apabila anda menggunakan banyak pertanyaan.

Dalam contoh ini, kami telah menjalankan dua gelung berdasarkan pertanyaan utama, yang menyimpan penggunaan WP_Query untuk menjalankan dua pertanyaan tambahan dan ia akan mengurangkan beban pelayan.  Anda boleh menggunakan teknik ini untuk pertanyaan yang anda tentukan menggunakan WP_Query atau dengan pertanyaan utama pada halaman arkib lain, dengan mengedit fail templat yang sesuai.

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