PHP: Notaðu WordPress API til að byggja upp stuttkóða til að skrá undirsíður
Við erum að vinna í ansi flókinni útfærslu fyrir viðskiptavin fyrirtækisins núna. Vefsíðan er byggð á WordPress en hún hefur tonn af bjöllum og flautum. Oft, þegar ég er að vinna þessa tegund af vinnu, vil ég vista sérsniðna kóðann til að endurnýta síðar á öðrum vefsvæðum. Í þessu tilfelli hélt ég að þetta væri svo gagnleg aðgerð, ég vildi deila henni með heiminum. Við erum að nota Avada WordPress þema með Fusion Page Builder sem foreldraþema og dreifa talsvert af sérsniðnum kóða í þema barnsins okkar.
WordPress hefur nú þegar nokkrar aðgerðir í API sínu sem hægt er að nota til að skrá undirsíður, eins og wp_list_pages og get_pages. Vandamálið er að þeir skila ekki nægum upplýsingum ef þú ert að vonast til að búa til virkan lista með fullt af upplýsingum.
Fyrir þennan viðskiptavin vildu þeir birta starfslýsingar og láta lista yfir atvinnuaðgerðir verða sjálfkrafa myndaðar í lækkandi röð eftir útgáfudegi þeirra. Þeir vildu einnig birta útdrátt af síðunni.
Svo í fyrsta lagi urðum við að bæta útdrætti við blaðsniðmátið. Í functions.php fyrir þema þeirra bætum við við:
add_post_type_support ('síðu', 'útdráttur');
Síðan þurftum við að skrá sérsniðinn skammkóða sem myndi búa til lista yfir undirsíður, tengla á þær og útdrátt fyrir þær. Gerðu þetta, við verðum að nota WordPress Loop. Í functions.php bætti við:
// Skráðu undirsíður í listaaðgerð dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Engar skrár', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ foreldri = nýtt WP_Query ($ args); ef ($ parent-> have_posts ()) {$ string. = $ content. ' '; meðan ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; ef (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; enda } annað {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); skila $ streng; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Nú er hægt að útfæra skammkóðann um alla vefinn til að sýna barnasíðurnar með krækju og útdrætti. Notkun:
[list_subpages aclass = "button" ifempty = "Því miður erum við ekki með neinar atvinnurekstur núna."] Listi yfir störf [/ listasíður]
Niðurstaðan er ágætur, hreinn óraðaður listi yfir birt störf, sem eru barnasíður undir starfsferilsíðu þeirra.
Ef engin störf voru gefin út (engar barnasíður) mun það birta:
Því miður höfum við ekki starf
Ef störf voru gefin út (barnasíður) mun það birta:
Listi yfir störf:
- Síðasta barnasíðan - Brot úr barnasíðunni
- Næsta barnasíða - Brot úr barnasíðunni
- Næsta barnasíða - Brot úr barnasíðunni