Anonim

త్వరిత విచ్ఛిన్నం

  • query_posts - అరుదైన అంచు సందర్భాలలో తప్ప ఉపయోగించవద్దు
  • pre_get_posts - మీరు పేజీలోని డిఫాల్ట్ ప్రశ్నను మార్చాలనుకుంటే ఉపయోగించండి
  • క్రొత్త WP_Query - ప్రధాన ప్రశ్న నుండి విభిన్న ఫలితాలను పొందడానికి ఉపయోగించండి
  • get_posts - WP_Query మాదిరిగానే, బదులుగా శ్రేణి ఆకృతిలో ఫలితాలను ఇస్తుంది
  • query_posts

    ప్రశ్న_పోస్టులను ఉపయోగించడం ఇకపై సిఫారసు చేయబడలేదు. మీరు సాధించడానికి ప్రయత్నిస్తున్న దాన్ని సాధించడానికి మంచి మార్గాలు ఉన్నాయి. ప్రధాన ప్రశ్నను మార్చడానికి ప్రయత్నిస్తున్నారా? ఫలితాలను ఫిల్టర్ చేయడానికి చర్య ప్రీ_జెట్_పోస్టులను ఉపయోగించండి (క్రింద చూడండి). query_posts అసలు ప్రధాన ప్రశ్నను ప్రక్కకు విసిరివేస్తుంది (ఇది ఇప్పటికే అమలు అయిన తర్వాత), మరియు క్రొత్త ప్రధాన ప్రశ్నను సృష్టిస్తుంది. ఇది అన్ని పోస్ట్ సంబంధిత గ్లోబల్ వేరియబుల్స్‌ను భర్తీ చేస్తుంది మరియు పూర్తిగా క్రొత్త డేటాబేస్ కాల్‌కు దారితీస్తుంది. మీరు ఇప్పటికే ఉన్న ప్రశ్నను మార్చకూడదు. ఇది ఉపయోగించాల్సిన కొన్ని అంచు కేసులు ఉన్నాయని నేను ఖచ్చితంగా అనుకుంటున్నాను, కాని నా తల పైభాగంలో ఏదీ ఆలోచించలేను. దిగువ ఎంపికలలో ఒకదాన్ని ఉపయోగించండి, ఎందుకంటే అవి బాగా సరిపోతాయి.

    pre_get_posts

    ఇది ఫిల్టర్. ఇది ప్రధాన ప్రశ్నను పేజీకి సవరించును. కాబట్టి, ఉదాహరణకు, హోమ్‌పేజీలో తిరిగి వచ్చిన ఫలితాల సంఖ్యను మార్చాలనుకుంటున్నాము…

ఫంక్షన్ tj_change_home_number (ery ప్రశ్న) {if (is_home ()) {ery query-> set ('posts_per_page', 2); తిరిగి; }} add_action ('pre_get_posts', 'tj_change_home_number');

ఇది హోమ్‌పేజీలో 2 పోస్ట్‌లను మాత్రమే తిరిగి ఇవ్వడానికి ప్రధాన ప్రశ్నను మారుస్తుంది.

wp_query

ఏదైనా టెంప్లేట్‌లోని ప్రధాన ప్రశ్న WP_Query యొక్క ఉదాహరణ. మీరు ఒక టెంప్లేట్‌లోని గ్లోబల్ పోస్ట్ వేరియబుల్స్‌తో సంభాషించినప్పుడు, అది WP_Query ఫలితం. దీని కోసం ఉపయోగ సందర్భాలు చాలా ఉన్నాయి, కాని get_posts మాదిరిగానే, సంబంధిత పోస్టులను లాగడం కోసం నేను క్రొత్త WP_ క్వెరీని ప్రకటిస్తాను. క్రొత్త WP_Query ద్వారా లూప్ చేస్తున్నప్పుడు మీరు the_post () ఫంక్షన్‌ను నడుపుతుంటే, గ్లోబల్ పోస్ట్ డేటాను అసలు ప్రధాన ప్రశ్నకు రీసెట్ చేయడానికి మీరు లూప్ చేసిన తర్వాత wp_reset_postdata () ఫంక్షన్‌ను అమలు చేయండి.

get_posts

Get_posts ని ఉపయోగించడం ద్వారా, మీరు కొత్త WP_Query ని పిలుస్తున్నారు మరియు ఆ సమాచారాన్ని శ్రేణి ఆకృతిలో తిరిగి పొందుతారు. నేను హోమ్‌పేజీలో స్లైడర్ కోసం పోస్ట్‌లను తిరిగి ఇచ్చేటప్పుడు లేదా సైడ్‌బార్‌లో కొన్ని సంబంధిత పోస్ట్‌లను పిలిచినప్పుడు నేను సాధారణంగా get_posts ని ఉపయోగిస్తాను. WP_Query చాలా తేలికగా ఉపయోగించబడుతుంది, కానీ గ్లోబల్ పోస్ట్ వేరియబుల్స్‌ను సవరించకుండా పోస్ట్‌ల శ్రేణిని స్వీకరించడానికి ఇది మంచి మార్గం. నా దృష్టిలో ఇది చాలా సరళమైన మరియు ఉపయోగించడానికి సులభమైనది. మీ డేటా తిరిగి వచ్చిన తర్వాత ఫంక్షన్ కాల్‌లు అవసరం లేదు, శ్రేణి ద్వారా లూప్ చేయండి.

ఇది కొద్దిగా గందరగోళంగా ఉంటుంది, కాబట్టి దిగువ వ్యాఖ్యలలో ప్రశ్నలు అడగడానికి సంకోచించకండి.

సూచన:
wp_query
pre_get_posts
query_posts
get_posts

Wp_query vs query_posts vs get_posts vs pre_get_posts