PHP: Uża l-API ta ’WordPress biex Tinbena Shortcode biex Telenka Subpaġni

WordPress PHP

Aħna qed naħdmu fuq implimentazzjoni pjuttost kumplessa għal klijent intrapriża bħalissa. Is-sit qed jinbena fi WordPress iżda għandu tunnellata ta 'qniepen u sfafar. Ħafna drabi, meta nkun qed nagħmel dan it-tip ta 'xogħol, inħobb insalva l-kodiċi tad-dwana biex jerġa' jinbena aktar tard fuq siti oħra. F'dan il-każ, ħsibt li kienet funzjoni tant utli, ridt naqsamha mad-dinja. Aħna qed nużaw Tema Avada WordPress bil-Fusion Page Builder bħala tema ġenitur, u tuża pjuttost ftit kodiċi tad-dwana fit-tema tat-tfal tagħna.

WordPress diġà għandu ftit funzjonijiet fl-API tiegħu li jistgħu jintużaw biex jelenkaw subpaġni, bħal wp_list_pages u get_pages. Il-problema hi li ma jirritornawx biżżejjed informazzjoni jekk qed tittama li toħloq lista b'mod dinamiku ma 'mazz ta' informazzjoni.

Għal dan il-klijent, huma riedu jibagħtu deskrizzjonijiet tax-xogħol u jkollhom il-lista tal-offerti tax-xogħol awtomatikament iġġenerati f'ordni dixxendenti sad-data tal-pubblikazzjoni tagħhom. Huma riedu wkoll juru silta tal-paġna.

Allura, l-ewwel, kellna nżidu l-appoġġ tas-silta mal-mudell tal-paġna. Fil functions.php għat-tema tagħhom, aħna żidna:

add_post_type_support ('paġna', 'silta');

Imbagħad, kellna bżonn nirreġistraw shortcode personalizzat li jiġġenera l-lista ta 'subpaġni, links magħhom, u s-silta għalihom. Agħmel dan, irridu nużaw il Loop WordPress. Fil functions.php, aħna żidna:

// Elenka Subpages f'funzjoni ta 'Lista dknm_list_child_pages ($ atts, $ content = "") {post globali $; $ atts = shortcode_atts (array ('ifempty' => 'Ebda Rekord', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'paġna', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ ġenitur = WP_Query ġdid ($ args); jekk ($ parent-> have_posts ()) {$ string. = $ kontenut. ' "; filwaqt li ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ''.get_the_title ().' "; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' "; fl-aħħar; } inkella {$ string = ' '. $ atts [' ifempty '].' "; } wp_reset_postdata (); jirritorna $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Issa, il-shortcode jista 'jiġi implimentat fis-sit kollu biex juri l-paġni tat-tfal b'link u silta. Użu:

[list_subpages aclass = "buttuna" ifempty = "Jiddispjacini, bħalissa m'għandniex opportunitajiet ta 'xogħol."] Lista ta 'Impjiegi [/ list_subpages]

Ir-riżultat huwa lista sabiħa u nadifa mhux ordnata tal-impjiegi ppubblikati, li huma paġni tfal taħt il-paġna tal-karriera tagħhom.

Jekk ma kienx hemm impjiegi ppubblikati (l-ebda paġna tat-tfal), din tippubblika:

Jiddispjacini, bħalissa m'għandniex opportunitajiet ta 'xogħol.

Jekk kien hemm impjiegi ppubblikati (paġni tat-tfal), din tippubblika:

Lista ta 'Impjiegi:

What do you think?

Dan is-sit juża Akismet biex inaqqas l-ispam. Tgħallem kif il-kumment tiegħek huwa pproċessat.