WP_Query သည် WordPress တွင်အားကောင်းသောစုံစမ်းမှုအတန်းအစားဖြစ်ပြီးခွဲခြားခြင်း, တံဆိပ်, စာရေးသူ, စာရေးသူ, အချိန်နှင့်အခြားအခြေအနေများအပေါ် အခြေခံ. စုံစမ်းမှုဆောင်းပါးများကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။ ဆောင်းပါးများကိုထုတ်ဝေရန်အချိန်, ကျပန်းအမိန့်သို့မဟုတ်မှတ်ချက်များအရေအတွက်ဖြင့်ကဲ့သို့သောနည်းလမ်းများကိုကွဲပြားခြားနားသောနည်းများဖြင့်ခွဲရန်ခွင့်ပြုသည်။ ရိုးရိုးလေးပြောရလျှင် WP_QUERERY သည်အဓိကမေးမြန်းမှုနှင့်မသက်ဆိုင်သောရှာဖွေမှုဥပမာတစ်ခုဖြစ်သည်။
WordPress တွင်အဓိကမေးမြန်းချက်သည် URL ရှိ Parameters များနှင့် WordPress Settings ရှိပုံမှန်တန်ဖိုးများအပေါ် အခြေခံ. ရှာဖွေမှုကိုတည်ဆောက်သည့်ရှေ့ပြေးတောင်းဆိုမှုများမှအလိုအလျောက်ပြုလုပ်နိုင်သည်။ ကျွန်ုပ်တို့ပိုမိုကောင်းမွန်သောမေးမြန်းချက်များလိုအပ်ပါကကျွန်ုပ်တို့သည် WP_Query ကိုထုံးတမ်းစဉ်လာရှာဖွေမှုများကိုပြုလုပ်ရန်လိုအပ်သည်။
WP_QUQUERER သည်အစွမ်းထက်သောအင်္ဂါရပ်များဖြစ်သော်လည်းများသောအားဖြင့်ကျွန်ုပ်တို့သည်အဓိကမေးမြန်းချက်အားအသေးစားချိန်ညှိမှုများပြုလုပ်ရန်သာလိုအပ်သည်။ ဥပမာအားဖြင့်, အဓိကကွင်းဆက်တွင်အချို့သောဆောင်းပါးများကိုဖယ်ထုတ်ထားခြင်းသို့မဟုတ်တိကျသောစာရေးဆရာများမှဆောင်းပါးများကိုသာဖော်ပြထားသည်။ WP_QUERERY ကိုတိုက်ရိုက်အသုံးပြုသောအခါ၎င်းသည်အဓိကမေးမြန်းချက်၏ parameters တွေကိုလျစ်လျူရှုထားပြီး,
ထို့ကြောင့်ကျွန်ုပ်တို့သည် WP_Query ကိုအဓိကမေးမြန်းမှုဖြင့်ပေါင်းစည်းရန်လိုအပ်သည်။
အဓိကမေးမြန်းချက်နှင့်စိတ်ကြိုက်မေးခွန်းများကိုပေါင်းစည်းရန်နည်းလမ်းနှစ်နည်းသည် 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 ကို အသုံးပြု. ကျွန်ုပ်တို့သည်တိကျသောအမျိုးအစားများကိုဖယ်ထုတ်ပြီးတိကျသောစာရေးဆရာဆောင်းပါးများကိုပြသသည်။
အကယ်. ကျွန်ုပ်တို့သည် 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_Query ကိုအဓိကမေးမြန်းချက်များဖြင့်ပေါင်းစည်းခြင်းသည် WordPress ဖွံ့ဖြိုးတိုးတက်မှုတွင်အလွန်လက်တွေ့ကျကျွမ်းကျင်မှုဖြစ်သည်။ ၎င်းသည်မေးမြန်းချက်များကိုပိုမိုတိကျစွာပိုမိုတိကျစွာကာကွယ်ရန်နှင့်ပ conflicts ိပက်ခများကိုရှောင်ရှားရန်ကူညီသည်။ Pre_Get_posts ချိတ်ဆက်မှုသုံးခြင်းသို့မဟုတ်တိုက်ရိုက်ရှာဖွေခြင်းဆိုင်ရာစုံစမ်းမှုသတ်မှတ်ချက်များကိုတိုက်ရိုက်ပြုပြင်ခြင်းသည်ဖြစ်စေ, တိုက်ရိုက်ပြုပြင်မွမ်းမံခြင်းဖြစ်စေ,