Nilalaman Marketing

PHP: Gamitin ang WordPress API upang Bumuo ng isang Shortcode sa Listahan ng Mga Subpage

Nagsusumikap kami sa isang kumplikadong pagpapatupad para sa isang client ng negosyo ngayon. Ang site ay itinatayo sa WordPress ngunit may isang tonelada ng mga kampanilya at sipol. Kadalasan, kapag ginagawa ko ang ganitong uri ng trabaho, nais kong i-save ang pasadyang code para sa repurposing sa ibang pagkakataon sa ibang mga site. Sa kasong ito, naisip ko na ito ay isang kapaki-pakinabang na pag-andar, nais kong ibahagi ito sa mundo. Ginagamit namin ang Ang tema ng Avada WordPress kasama ang Tagabuo ng Pahina ng Fusion bilang isang tema ng magulang, at pag-deploy ng medyo isang pasadyang code sa tema ng aming anak.

Ang WordPress ay mayroon nang isang pag-andar sa API nito na maaaring magamit upang ilista ang mga subpage, tulad ng wp_list_pages at get_pages. Ang problema ay hindi sila nagbabalik ng sapat na impormasyon kung inaasahan mong lumikha ng isang listahan nang maraming impormasyon.

Para sa kostumer na ito, nais nilang mag-post ng mga paglalarawan sa trabaho at magkaroon ng listahan ng mga bukas na trabaho na awtomatikong nabuo sa pababang pagkakasunud-sunod ayon sa kanilang petsa ng pag-publish. Nais din nilang ipakita ang isang sipi ng pahina.

Kaya, una, kailangan naming magdagdag ng suporta ng sipi sa template ng pahina. Sa mga function.php para sa kanilang tema, idinagdag namin ang:

add_post_type_support ('pahina', 'sipi');

Pagkatapos, kailangan naming magparehistro ng isang pasadyang shortcode na makakabuo ng listahan ng mga subpage, mga link sa kanila, at ang sipi para sa kanila. Gawin ito, kailangan nating gamitin ang WordPress Loop. Sa mga function.php, nagdagdag kami:

// List Subpages in a List function dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Walang Records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'pahina', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ magulang = bagong WP_Query ($ args); kung ($ magulang-> may_post ()) {$ string. = $ nilalaman. ' '; habang ($ magulang-> may_post ()): $ magulang-> the_post (); $ string. = ' '.get_the_title ().' '; kung (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; pansamantala; } iba pa {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); ibalik ang $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Ngayon, maaaring ipatupad ang shortcode sa buong site upang maipakita ang mga pahina ng bata na may isang link at sipi. Paggamit:

[list_subpages aclass = "button" ifempty = "Paumanhin, kasalukuyang wala kaming mga bakanteng trabaho."] Listahan ng Mga Trabaho [/ list_subpages]

Ang resulta ay isang maganda, malinis na hindi naiayos na listahan ng mga nai-publish na trabaho, na mga pahina ng bata sa ilalim ng kanilang pahina ng karera.

Kung walang na-publish na mga trabaho (walang mga pahina ng bata), lathala nito:

Paumanhin, kasalukuyang wala kaming mga bakanteng trabaho.

Kung may mga trabahong na-publish (mga pahina ng bata), lathala nito:

Listahan ng Mga Trabaho:

Douglas Karr

Douglas Karr ay CMO ng OpenINSIGHTS at ang nagtatag ng Martech Zone. Nakatulong si Douglas sa dose-dosenang matagumpay na mga startup ng MarTech, tumulong sa angkop na pagsusumikap ng higit sa $5 bil sa mga pagkuha at pamumuhunan ng Martech, at patuloy na tinutulungan ang mga kumpanya sa pagpapatupad at pag-automate ng kanilang mga diskarte sa pagbebenta at marketing. Si Douglas ay isang kinikilalang internasyonal na digital na pagbabago at eksperto at tagapagsalita ng MarTech. Si Douglas ay isa ring nai-publish na may-akda ng isang Dummie's guide at isang business leadership book.

Kaugnay na Artikulo

Bumalik sa tuktok na pindutan
Pagsasara

Natukoy ang Adblock

Martech Zone ay kayang ibigay sa iyo ang nilalamang ito nang walang bayad dahil pinagkakakitaan namin ang aming site sa pamamagitan ng kita ng ad, mga link na kaakibat, at mga sponsorship. Ikinalulugod namin kung aalisin mo ang iyong ad blocker habang tinitingnan mo ang aming site.