လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> WordPress စုံစမ်းမှုထိရောက်မှုကိုတိုးတက်စေရန် WP_Query ကိုအဓိကမေးမြန်းချက်ဖြင့်ပေါင်းစည်းရမည်နည်း

WordPress စုံစမ်းမှုထိရောက်မှုကိုတိုးတက်စေရန် WP_Query ကိုအဓိကမေးမြန်းချက်ဖြင့်ပေါင်းစည်းရမည်နည်း

gitbox 2025-06-13

WP_Query ဆိုတာဘာလဲ။

WP_Query သည် WordPress တွင်အားကောင်းသောစုံစမ်းမှုအတန်းအစားဖြစ်ပြီးခွဲခြားခြင်း, တံဆိပ်, စာရေးသူ, စာရေးသူ, အချိန်နှင့်အခြားအခြေအနေများအပေါ် အခြေခံ. စုံစမ်းမှုဆောင်းပါးများကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။ ဆောင်းပါးများကိုထုတ်ဝေရန်အချိန်, ကျပန်းအမိန့်သို့မဟုတ်မှတ်ချက်များအရေအတွက်ဖြင့်ကဲ့သို့သောနည်းလမ်းများကိုကွဲပြားခြားနားသောနည်းများဖြင့်ခွဲရန်ခွင့်ပြုသည်။ ရိုးရိုးလေးပြောရလျှင် WP_QUERERY သည်အဓိကမေးမြန်းမှုနှင့်မသက်ဆိုင်သောရှာဖွေမှုဥပမာတစ်ခုဖြစ်သည်။

WordPress တွင်အဓိကမေးမြန်းချက်သည် URL ရှိ Parameters များနှင့် WordPress Settings ရှိပုံမှန်တန်ဖိုးများအပေါ် အခြေခံ. ရှာဖွေမှုကိုတည်ဆောက်သည့်ရှေ့ပြေးတောင်းဆိုမှုများမှအလိုအလျောက်ပြုလုပ်နိုင်သည်။ ကျွန်ုပ်တို့ပိုမိုကောင်းမွန်သောမေးမြန်းချက်များလိုအပ်ပါကကျွန်ုပ်တို့သည် WP_Query ကိုထုံးတမ်းစဉ်လာရှာဖွေမှုများကိုပြုလုပ်ရန်လိုအပ်သည်။

အဘယ်ကြောင့်အဓိကမေးမြန်းချက်နှင့်စိတ်ကြိုက်စုံစမ်းမှုကိုပေါင်းစည်းရန်လိုအပ်သနည်း။

WP_QUQUERER သည်အစွမ်းထက်သောအင်္ဂါရပ်များဖြစ်သော်လည်းများသောအားဖြင့်ကျွန်ုပ်တို့သည်အဓိကမေးမြန်းချက်အားအသေးစားချိန်ညှိမှုများပြုလုပ်ရန်သာလိုအပ်သည်။ ဥပမာအားဖြင့်, အဓိကကွင်းဆက်တွင်အချို့သောဆောင်းပါးများကိုဖယ်ထုတ်ထားခြင်းသို့မဟုတ်တိကျသောစာရေးဆရာများမှဆောင်းပါးများကိုသာဖော်ပြထားသည်။ WP_QUERERY ကိုတိုက်ရိုက်အသုံးပြုသောအခါ၎င်းသည်အဓိကမေးမြန်းချက်၏ parameters တွေကိုလျစ်လျူရှုထားပြီး,

ထို့ကြောင့်ကျွန်ုပ်တို့သည် WP_Query ကိုအဓိကမေးမြန်းမှုဖြင့်ပေါင်းစည်းရန်လိုအပ်သည်။

Main query နှင့်စိတ်ကြိုက်ရှာဖွေခြင်းကိုမည်သို့ပေါင်းစည်းရမည်နည်း။

အဓိကမေးမြန်းချက်နှင့်စိတ်ကြိုက်မေးခွန်းများကိုပေါင်းစည်းရန်နည်းလမ်းနှစ်နည်းသည် pre_get_posts ချိတ်ဆက်မှုကိုလုပ်ဆောင်ခြင်းဖြင့်အသုံးပြုသည်။ နည်းလမ်းတစ်ခုစီတွင်၎င်း၏အားသာချက်များနှင့်အားနည်းချက်များရှိပြီးသင့်လျော်သောနည်းလမ်းများကိုတိကျသောလိုအပ်ချက်များနှင့်အညီရွေးချယ်သင့်သည်။

နည်းလမ်း 1: pre_get_posts ချိတ်ကိုသုံးပါ

Pre_Get_posts သည် WordPress တွင်အရေးကြီးသောချိတ်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ pre_get_posts ချိတ်ချိတ်ဆက်ခြင်း functions.php ဖိုင်တွင် function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်လိုချင်သောအကျိုးသက်ရောက်မှုကိုရရှိရန်အဓိကမေးမြန်းချက်၏ parameters များကိုအလွယ်တကူပြုပြင်နိုင်သည်။

ဒီမှာဥပမာတစ်ခုပါ။

 function my_custom_query($query) {
    // အကယ်. ၎င်းသည်နောက်ခံမေးခွန်းတစ်ခုမဟုတ်ပါက၎င်းသည်အဓိကမေးမြန်းမှုတစ်ခုဖြစ်သည်,စုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များကိုပြုပြင်မွမ်းမံပါ
    if (!is_admin() && $query->is_main_query()) {
        $query->set('cat', '-1,-2,-3'); // ထုတ်ပယ်IDအတွက်1、2、3အမျိုးခဲှခြားခြင်း
        $query->set('author', '1'); // သာပြပါIDအတွက်1စာရေးသူမှဆောင်းပါးများ
    }
}
add_action('pre_get_posts', 'my_custom_query');

အထက်ဖော်ပြပါကုဒ်များတွင်ကျွန်ုပ်တို့သည် query-set () function ကို အသုံးပြု. $ query-set () function ကို အသုံးပြု. ကျွန်ုပ်တို့သည်တိကျသောအမျိုးအစားများကိုဖယ်ထုတ်ပြီးတိကျသောစာရေးဆရာဆောင်းပါးများကိုပြသသည်။

နည်းလမ်း 2 - စုံစမ်းမှုသတ်မှတ်ချက်များကိုတိုက်ရိုက်ပြုပြင်မွမ်းမံခြင်း

အကယ်. ကျွန်ုပ်တို့သည် template file ရှိမေးမြန်းချက်ကိုရိုးရှင်းသောပြုပြင်မွမ်းမံရန်သာလိုအပ်ပါကကျွန်ုပ်တို့သည်စုံစမ်းမှုသတ်မှတ်ချက်များကိုတိုက်ရိုက်ပြုပြင်နိုင်သည်။ ဤသည်ကိုပိုမိုတိုက်ရိုက်နှင့်ရိုးရှင်းပါသည်။ ဥပမာအားဖြင့်:

 // Home Page Template တွင် Code
$featured_posts = new WP_Query(array(
    'category_name' => 'featured', // သာပြပါ特定分类的文章
    'posts_per_page' => 5, // သာပြပါ5ဆောင်းပါး
));

while ($featured_posts->have_posts()) {
    $featured_posts->the_post(); // ဆောင်းပါးခေါင်းစဉ်ကိုပြပါ、အကြောင်းအရာစသည်ဖြင့်
}
// မူရင်းမေးမြန်းချက်ကိုပြန်ယူပါ
wp_reset_postdata();

အထက်ဖော်ပြပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်အမျိုးအစားနှင့် posts_per_per_page parametersters များကိုသတ်မှတ်ခြင်းဖြင့်သီးခြားအမျိုးအစား 5 ခုကိုမေးမြန်းသည်။ တစ်ချိန်တည်းမှာပင်နောက်ဆက်တွဲမေးမြန်းချက်များကိုမထိခိုက်စေရန်မူလစုံစမ်းမှုကိုပြန်လည်ထူထောင်ရန်အတွက် WP_RESET_PostData () function ကိုသုံးပါ။

မှတ်သားရန်အရာ

သင် pre_get_post ကိုအသုံးပြုနေသလားသို့မဟုတ်စုံစမ်းမှုသတ်မှတ်ချက်များကိုတိုက်ရိုက်ပြုပြင်မွမ်းမံခြင်း,

  • အခြားစုံစမ်းမှုရလဒ်များကိုထိခိုက်မှုမှရှောင်ရှားရန်စုံစမ်းမှုသတ်မှတ်ချက်များကိုဂရုတစိုက်ပြင်ဆင်ပါ။
  • နောက်ဆက်တွဲမေးမြန်းချက်များကိုထိခိုက်စေခြင်းမှရှောင်ရှားရန် WP_RESET_PostDATACE () ကိုသုံးပါ။
  • site စွမ်းဆောင်ရည်ကိုမထိခိုက်စေရန် WP_Query Class ကိုတိုက်ရိုက်မသုံးပါနှင့်။

ကောက်ချက်

WP_Query ကိုအဓိကမေးမြန်းချက်များဖြင့်ပေါင်းစည်းခြင်းသည် WordPress ဖွံ့ဖြိုးတိုးတက်မှုတွင်အလွန်လက်တွေ့ကျကျွမ်းကျင်မှုဖြစ်သည်။ ၎င်းသည်မေးမြန်းချက်များကိုပိုမိုတိကျစွာပိုမိုတိကျစွာကာကွယ်ရန်နှင့်ပ conflicts ိပက်ခများကိုရှောင်ရှားရန်ကူညီသည်။ Pre_Get_posts ချိတ်ဆက်မှုသုံးခြင်းသို့မဟုတ်တိုက်ရိုက်ရှာဖွေခြင်းဆိုင်ရာစုံစမ်းမှုသတ်မှတ်ချက်များကိုတိုက်ရိုက်ပြုပြင်ခြင်းသည်ဖြစ်စေ, တိုက်ရိုက်ပြုပြင်မွမ်းမံခြင်းဖြစ်စေ,