Rumah > Tutorial CMS > WordTekan > Meneroka Fungsi Get_Posts WordPress

Meneroka Fungsi Get_Posts WordPress

Lisa Kudrow
Lepaskan: 2025-02-17 10:17:43
asal
477 orang telah melayarinya

Meneroka Fungsi Get_Posts WordPress

Takeaways Key

    Fungsi get_posts () dalam WordPress digunakan untuk mengambil jawatan dari pangkalan data dengan menggunakan penapis tersuai dan menyusun hasil akhir berdasarkan satu set parameter. Ia mengembalikan pelbagai objek WP_POST, masing -masing mewakili jawatan individu.
  • Fungsi get_posts () lebih disukai daripada objek WP_Query kerana yang terakhir mengubah gelung utama, yang berpotensi menyebabkan isu tapak. Fungsi get_posts () dan get_pages () berfungsi kedua -duanya mengambil jawatan, tetapi berbeza dalam nama parameter, nilai, dan kaedah pengambilan semula.
  • Fungsi get_posts () menerima pelbagai parameter untuk memohon penapis tersuai dan menyusun hasil. Parameter ini termasuk posts_per_page, paged, tax_query, orderby, order, exclude, meta_key, meta_value, post_type, dan post_status.
  • Fungsi get_posts () boleh digunakan untuk mengambil jawatan yang paling popular, jawatan rawak, jawatan dengan kunci dan nilai meta yang sepadan, dan jawatan jenis pos tersuai dengan nama taksonomi tersuai. Keputusan yang dikembalikan kemudian dilingkari untuk kegunaan selanjutnya.
Banyak plugin WordPress mengambil jawatan dari pangkalan data dengan menyesuaikan perintah penyortiran, mengambil jawatan berdasarkan kunci meta atau taksonomi tertentu. Pernahkah anda tertanya -tanya bagaimana plugin ini mengambil senarai jawatan yang disesuaikan tanpa menulis sebarang pertanyaan SQL? Dalam tutorial ini kita akan belajar bagaimana untuk melakukannya dengan tepat.

Meneroka Fungsi Get_Posts WordPress Dalam artikel ini kita akan meneroka fungsi get_posts () dengan beberapa contoh cara menggunakannya dalam projek anda sendiri. Kami juga akan meliputi beberapa kes penggunaan biasa untuk fungsi ini dan bagaimana ia berbeza dari objek WP_Query dan fungsi get_pages.

apakah fungsi get_posts ()?

Fungsi get_posts telah tersedia di WordPress Core sejak WordPress 1.2.0. Fungsi ini pada dasarnya digunakan untuk mengambil jawatan dari pangkalan data dengan menggunakan penapis tersuai dan menyusun hasil akhir berdasarkan satu set parameter.

Fungsi get_posts () mengembalikan pelbagai objek WP_POST. Setiap objek WP_POST mewakili jawatan individu.

get_posts dalaman menggunakan objek WP_Query untuk membina dan melaksanakan pertanyaan SQL berdasarkan set parameter yang diluluskan.

NOTA: Posts Means Post, Page and Custom Post Type.

mengapa tidak menggunakan objek WP_Query secara langsung?

Plugin Gunakan fungsi get_posts dan bukannya objek WP_Query kerana menggunakan objek WP_Query secara langsung mengubah gelung utama (iaitu, pembolehubah $ WP_Query global) yang akan menyebabkan isu tapak.

Apakah perbezaan antara fungsi get_posts () dan get_pages ()?

kedua -duanya digunakan untuk mengambil jawatan dari pangkalan data WordPress, bagaimanapun, berikut adalah beberapa perbezaan di antara mereka:

  • Beberapa nama dan nilai parameter berbeza di antara mereka. Walaupun mereka berkelakuan dengan cara yang sama tanpa mengira nama parameter.
  • fungsi get_pages () pada masa ini tidak mengambil jawatan berdasarkan meta_key dan parameter meta_value.
  • Fungsi get_pages () tidak menggunakan objek WP_Query. Sebaliknya, ia membina dan melaksanakan pertanyaan SQL secara langsung.

get_posts () Parameter fungsi

Fungsi get_posts hanya mengambil satu hujah sebagai array. Arahan mengandungi parameter yang berbeza untuk menggunakan penapis tersuai dan menyusun hasilnya.

Berikut adalah contoh kod yang menunjukkan cara memanggil fungsi ini dan pelbagai parameter yang tersedia:

<span><span><?php 
</span></span><span>
</span><span><span>$args = array(
</span></span><span>	<span>"posts_per_page"   => 5,
</span></span><span>	<span>"paged"            => 1
</span></span><span>	<span>"tax_query" => array(
</span></span><span>		<span>array(
</span></span><span>			<span>"taxonomy" => "category",
</span></span><span>			<span>"field"    => "slug",
</span></span><span>			<span>"terms"    => "videos,movies",
</span></span><span>		<span>)
</span></span><span>	<span>),
</span></span><span>	<span>"orderby"          => "post_date",
</span></span><span>	<span>"order"            => "DESC",
</span></span><span>	<span>"exclude"          => "1123, 4456",
</span></span><span>	<span>"meta_key"         => "",
</span></span><span>	<span>"meta_value"       => "",
</span></span><span>	<span>"post_type"        => "post",
</span></span><span>	<span>"post_status"      => "publish"
</span></span><span><span>);
</span></span><span>
</span><span><span>$posts_array = get_posts($args); 
</span></span><span>
</span><span><span>?></span></span>
Salin selepas log masuk
Salin selepas log masuk

Terdapat lebih banyak parameter yang tersedia, tetapi ini adalah yang paling biasa digunakan. Mari lihat setiap parameter ini:

  1. posts_per_page: Parameter ini mentakrifkan bilangan jawatan untuk kembali. Gunakan -1 jika anda mahu semua jawatan.
  2. paged: Membolehkan kami menavigasi antara satu set jawatan semasa menggunakan parameter Posts_per_page. Ia digunakan untuk penomboran. Sebagai contoh: Katakan posts_per_page adalah 10 dan terdapat 20 jawatan dalam hasilnya, maka jika anda memberikan paged kepada 2 maka 10 jawatan terakhir dikembalikan.
  3. tax_query: Paparkan jawatan taksonomi tertentu slug i.e., menapis jawatan slug taksonomi yang lain. Terma boleh mengambil rentetan yang dipisahkan koma yang mewakili pelbagai slug taksonomi.
  4. Orderby: Ia digunakan untuk menyusun jawatan yang diambil. Sesetengah nilai yang mungkin adalah: "Tiada", "Tarikh", "Rand", "Comment_Count", "Meta_Value", "META_VALUE_NUM" dan lain -lain Semasa menyusun menggunakan "meta_value" dan "meta_value_num", anda perlu menyediakan parameter meta_key.
  5. Pesanan: Menetapkan Perintah Menaik atau Menurun Parameter Orderby. Nilai yang mungkin adalah "desc" atau "asc".
  6. tidak termasuk: Ia memerlukan senarai koma yang dipisahkan dari ID pos yang akan dikecualikan daripada carian pangkalan data.
  7. meta_key dan meta_value: Jika anda hanya menyediakan meta_key, maka jawatan yang mempunyai kunci akan dikembalikan. Jika anda juga menyediakan meta_value maka posting yang sepadan dengan meta_value untuk meta_key dikembalikan.
  8. post_type: Mendapatkan kandungan berdasarkan pos, halaman atau jenis post tersuai. Ingat bahawa post_type lalai hanya ditetapkan untuk memaparkan siaran tetapi bukan halaman.
  9. Post_Status: Mendapatkan jawatan dengan status jawatan. Nilai yang mungkin adalah: "menerbitkan", "menunggu", "draf", "masa depan", "mana -mana" atau "sampah".

Objek WP_POST

Fungsi get_posts mengembalikan array yang mengandungi objek WP_POST. Berikut adalah sifat penting objek WP_POST:

  1. id: id jawatan
  2. post_author: nama pengarang jawatan
  3. post_type: jenis jawatan
  4. post_title: tajuk jawatan
  5. post_date: Tarikh di mana jawatan telah diterbitkan. Format: 0000-00-00 00:00:00
  6. post_content: kandungan jawatan.
  7. post_status: Status jawatan
  8. COMMENT_COUNT: Bilangan komen untuk jawatan

Contoh get_posts

mari kita periksa beberapa contoh menggunakan fungsi get_posts.

jawatan paling popular

Jika anda ingin memaparkan nombor N atas jawatan yang paling banyak dibincangkan di laman web anda, maka anda boleh menggunakan get_posts untuk mengambilnya. Berikut adalah contoh:

<span><span><?php 
</span></span><span>
</span><span><span>$args = array(
</span></span><span>	<span>"posts_per_page"   => 5,
</span></span><span>	<span>"paged"            => 1
</span></span><span>	<span>"tax_query" => array(
</span></span><span>		<span>array(
</span></span><span>			<span>"taxonomy" => "category",
</span></span><span>			<span>"field"    => "slug",
</span></span><span>			<span>"terms"    => "videos,movies",
</span></span><span>		<span>)
</span></span><span>	<span>),
</span></span><span>	<span>"orderby"          => "post_date",
</span></span><span>	<span>"order"            => "DESC",
</span></span><span>	<span>"exclude"          => "1123, 4456",
</span></span><span>	<span>"meta_key"         => "",
</span></span><span>	<span>"meta_value"       => "",
</span></span><span>	<span>"post_type"        => "post",
</span></span><span>	<span>"post_status"      => "publish"
</span></span><span><span>);
</span></span><span>
</span><span><span>$posts_array = get_posts($args); 
</span></span><span>
</span><span><span>?></span></span>
Salin selepas log masuk
Salin selepas log masuk

di sini, kami menggunakan parameter Orderby untuk menyusun jawatan berdasarkan bilangan komen, mengambil 10 jawatan teratas.

Random Posts

anda juga boleh mendapatkan jawatan rawak dengan mudah. Ini berguna untuk mengesyorkan pengguna artikel lain di laman web anda sebaik sahaja mereka selesai membaca yang terkini. Inilah kod untuk ini:

<span><span><?php
</span></span><span>	<span>$args = array("posts_per_page" => 10, "orderby" => "comment_count");
</span></span><span>	<span>$posts_array = get_posts($args);
</span></span><span>	<span>foreach($posts_array as $post)
</span></span><span>	<span>{
</span></span><span>	  <span>echo "<h1>" . $post->post_title . "</h1><br>";
</span></span><span>	  <span>echo "<p>" . $post->post_content . "</p><br>";
</span></span><span>	<span>} 
</span></span><span><span>?></span></span>
Salin selepas log masuk

Dalam contoh di atas, kami lulus nilai rand ke parameter order_by.

jawatan dengan kunci dan nilai meta yang sepadan

Kami mungkin mahu mengambil semua jawatan yang mempunyai kunci meta dan nilai tertentu yang diberikan. Sebagai contoh: Sesetengah blog mempunyai pengulas untuk setiap artikel. Kami mungkin mahu mengambil artikel yang dikaji semula oleh pengulas tertentu.

inilah kod untuk melakukannya:

<span><span><?php
</span></span><span>  <span>$args = array("posts_per_page" => 1, "orderby" => "rand");
</span></span><span>  <span>$posts_array = get_posts($args);
</span></span><span>  <span>foreach($posts_array as $post)
</span></span><span>  <span>{
</span></span><span>    <span>echo "<h1>" . $post->post_title . "</h1><br>";
</span></span><span>    <span>echo "<p>" . $post->post_content . "</p><br>";
</span></span><span>  <span>} 
</span></span><span><span>?></span></span>
Salin selepas log masuk

di sini, kami mengambil semua jawatan yang dikaji semula oleh "NarayanPrusty". Kami menganggap nama pengulas disimpan melalui "pengulas" kunci meta untuk setiap jawatan.

jenis pos tersuai dengan taksonomi tersuai

Kami mungkin mahu mengambil jawatan jenis pos tersuai dengan nama taksonomi tersuai. Pertimbangkan contoh kod ini:

<span><span><?php
</span></span><span>  <span>$args = array("posts_per_page" => -1, "meta_key" => "reviewer", "meta_value" = "narayanprusty");
</span></span><span>  <span>$posts_array = get_posts($args);
</span></span><span>  <span>foreach($posts_array as $post)
</span></span><span>  <span>{
</span></span><span>    <span>echo "<h1>" . $post->post_title . "</h1><br>";
</span></span><span>    <span>echo "<p>" . $post->post_content . "</p><br>";
</span></span><span>  <span>} 
</span></span><span><span>?></span></span>
Salin selepas log masuk

Dalam contoh ini, kami mengambil semula jawatan jenis post tersuai bernama "kupon" yang tergolong dalam taksonomi adat "plugin" dan "tema".

Kesimpulan

Dalam artikel ini kita melihat bagaimana fungsi Get_Posts berfungsi, pelbagai parameter yang disokongnya, melingkari hasil yang dikembalikan dan beberapa kes penggunaan sampel. Fungsi get_posts adalah salah satu fungsi WordPress yang paling banyak digunakan, saya harap anda kini boleh mula menggunakan projek anda sendiri.

Soalan Lazim (Soalan Lazim) Mengenai Fungsi WordPress Get_Posts

Apakah perbezaan antara get_posts dan wp_query dalam wordpress?

Kedua -dua get_posts dan wp_query digunakan untuk mengambil jawatan dari pangkalan data WordPress anda. Walau bagaimanapun, mereka berbeza dalam penggunaan dan fleksibiliti mereka. GET_POSTS adalah fungsi yang lebih mudah, sesuai untuk pemula dan untuk situasi di mana anda hanya perlu mengambil set jawatan tertentu. Sebaliknya, WP_Query lebih kuat dan fleksibel. Ia membolehkan pertanyaan yang lebih kompleks dan memberi anda lebih banyak kawalan ke atas gelung WordPress. Walaupun get_posts lebih mudah digunakan, WP_Query menyediakan ciri -ciri yang lebih canggih untuk menyesuaikan pertanyaan anda.

Bagaimana saya boleh mengubah suai bilangan jawatan yang dikembalikan oleh get_posts?

Anda boleh mengawal bilangan jawatan yang dikembalikan oleh get_posts dengan menggunakan parameter 'NumberPosts'. Secara lalai, ia ditetapkan kepada 5. Jika anda ingin mengambil semua jawatan, anda boleh menetapkan 'NumberPosts' ke -1. Sebagai contoh, untuk mendapatkan 10 jawatan, anda akan menggunakan: get_posts (array ('numberposts' => 10)); boleh menggunakan get_posts untuk mendapatkan jenis pos tersuai. Anda hanya perlu menentukan parameter 'post_type' dalam pertanyaan anda. Contohnya, jika anda mempunyai jenis pos tersuai yang disebut 'produk', anda boleh mengambil siaran ini dengan: get_posts (array ('post_type' => 'produk'); Dengan get_posts?

Anda boleh menyusun jawatan yang dikembalikan oleh get_posts dengan menggunakan parameter 'orderby' dan 'order'. 'Orderby' menentukan medan untuk menyusun, dan 'perintah' menentukan perintah penyortiran (ASC untuk menaik dan DESC untuk turun). Sebagai contoh, untuk menyusun jawatan mengikut tajuk dalam urutan menaik, anda akan menggunakan: get_posts (array ('orderby' => 'tajuk', 'order' => 'asc'); Untuk mengambil jawatan dari kategori tertentu?

Ya, anda boleh menggunakan get_posts untuk mendapatkan jawatan dari kategori tertentu. Anda hanya perlu menentukan parameter 'kategori' dalam pertanyaan anda. Sebagai contoh, untuk mendapatkan jawatan dari kategori dengan ID 3, anda akan menggunakan: get_posts (array ('kategori' => 3)); >

Untuk mengambil jawatan dari pelbagai kategori, anda boleh lulus pelbagai ID kategori ke parameter 'kategori'. Sebagai contoh, untuk mendapatkan jawatan dari kategori dengan ID 3 dan 4, anda akan menggunakan: get_posts (array ('kategori' => array (3, 4))); Catatan oleh pengarang tertentu?

Ya, anda boleh menggunakan get_posts untuk mendapatkan jawatan oleh pengarang tertentu. Anda hanya perlu menentukan parameter 'pengarang' dalam pertanyaan anda. Sebagai contoh, untuk mendapatkan jawatan oleh pengarang dengan ID 1, anda akan menggunakan: get_posts (array ('pengarang' => 1)); ?

Untuk mengambil jawatan yang mengandungi nilai meta tertentu, anda boleh menggunakan parameter 'meta_key' dan 'meta_value'. Sebagai contoh, untuk mendapatkan jawatan yang mempunyai kunci meta 'warna' dan nilai meta 'biru', anda akan menggunakan: get_posts (array ('meta_key' => 'color', 'meta_value' => 'biru') ); Anda hanya perlu menentukan parameter 'Tag' dalam pertanyaan anda. Sebagai contoh, untuk mendapatkan jawatan yang mempunyai tag 'wordpress', anda akan menggunakan: get_posts (array ('tag' => 'wordpress'));

Bagaimana saya boleh mengambil jawatan dari julat tarikh tertentu menggunakan get_posts?

Untuk mengambil jawatan dari julat tarikh tertentu, anda boleh menggunakan parameter 'date_query'. Parameter ini menerima pelbagai tatasusunan, dengan setiap array dalaman yang menentukan klausa pertanyaan tarikh. Sebagai contoh, untuk mendapatkan jawatan dari Januari 2020, anda akan menggunakan: get_posts (array ('date_query' => array (array ('year' => 2020, 'month' => 1)));

Atas ialah kandungan terperinci Meneroka Fungsi Get_Posts WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan