Anonim

Ātra sadalīšana

  • query_posts - nelietojiet, izņemot retos gadījumos
  • pre_get_posts - izmantojiet, ja vēlaties mainīt lapas noklusējuma vaicājumu
  • jauns WP_Query - izmantojiet, lai iegūtu atšķirīgus rezultātus no galvenā vaicājuma
  • get_posts - tāds pats kā WP_Query, tā vietā rezultāti tiek parādīti tikai masīva formātā
  • query_posts

    Vairs nav ieteicams izmantot query_posts. Ir labāki veidi, kā paveikt to, ko mēģināt paveikt. Vai mēģināt mainīt galveno vaicājumu? Izmantojiet darbību pre_get_posts, lai filtrētu rezultātus (skatīt zemāk). query_posts atmet sākotnējo galveno vaicājumu uz sāniem (pēc tam, kad tas jau ir izpildīts), un izveido jaunu galveno vaicājumu. Tas aizstāj visus ar post saistītos globālos mainīgos, un rezultāts ir pilnīgi jauns datu bāzes izsaukums. Vienkārši nav iemesla, kāpēc nevajadzētu mainīt tikai esošo vaicājumu. Es esmu pārliecināts, ka ir daži malas gadījumi, kad to vajadzētu izmantot, bet es nedomāju par to, kas būtu manas galvas augšpusē. Izmantojiet vienu no tālāk norādītajām iespējām, jo ​​tās vairāk nekā iespējams būs labāk piemērotas.

    pre_get_posts

    Šis ir filtrs. Tādējādi tiek mainīts lapas galvenais vaicājums. Piemēram, mēs vēlamies mainīt to rezultātu skaitu, kas tiek atgriezti mājaslapā…

funkcija tj_change_home_number ($ query) {if (is_home ()) {$ query-> set ('posts_per_page', 2); atgriešanās; }} add_action ('pre_get_posts', 'tj_change_home_number');

Tas mainītu galveno vaicājumu, lai sākumlapā tiktu parādītas tikai 2 ziņas.

WP_Query

Galvenais vaicājums uz visām veidnēm, kuras tiek sauktas, ir WP_Query piemērs . Kad jūs mijiedarbojaties ar globālajiem pasta mainīgajiem veidnē, tas ir WP_Query rezultāts. Izmantošanas gadījumi šim gadījumam ir daudz, taču tāpat kā get_posts gadījumā, lai piesaistītu saistītos amatus, es gribētu paziņot par jaunu WP_Query, kaut ko tādu. Vienkārši paturiet prātā, ka, palaižot funkciju the_post (), vienlaikus meklējot jaunu WP_Query, palaidiet funkciju wp_reset_postdata (), kad esat pabeidzis cilpas izveidi, lai globālo ziņu datus atiestatītu sākotnējā galvenajā vaicājumā.

get_posts

Izmantojot get_posts, jūs faktiski izsaucat jaunu WP_Query un saņemat šo informāciju masīva formātā. Parasti izmantošu get_posts, kad mājas lapā atgriežu slīdņa ziņas vai sānjoslā izsaucu dažus saistītus ziņojumus. WP_Query var tikpat viegli izmantot, taču tas ir labs veids, kā saņemt ziņojumu masīvu, nemainot globālos pasta mainīgos. Manuprāt, tā ir vienkāršākā un vienkāršākā lietošanā. Pēc tam, kad jūsu dati ir atgriezti, nav nepieciešami funkciju izsaukumi, bet tikai izveido masīvu.

Tas var būt nedaudz mulsinoši, tāpēc nekautrējieties uzdot jautājumus zemāk esošajos komentāros.

Atsauce:
WP_Query
pre_get_posts
query_posts
get_posts

Wp_query vs query_posts vs get_posts vs pre_get_posts