PHP: Použite WordPress API na zostavenie krátkeho kódu na výpis podstránok
Momentálne pracujeme na dosť komplexnej implementácii pre podnikového klienta. Táto stránka sa vytvára v prostredí WordPress, ale obsahuje množstvo zvonov a píšťaliek. Keď často robím tento typ práce, rád by som si uložil vlastný kód na neskoršie použitie na iných stránkach. V tomto prípade som si myslel, že je to taká užitočná funkcia, chcel som sa o ňu podeliť so svetom. Používame Téma Avada WordPress s nástrojom Fusion Page Builder ako nadradená téma a do našej podradenej témy nasadzujeme pomerne veľa vlastného kódu.
WordPress už má vo svojom rozhraní API niekoľko funkcií, ktoré je možné použiť na zoznam podstránok, ako napríklad wp_list_pages a get_pages. Problém je v tom, že nevrátia dostatok informácií, ak dúfate, že dynamicky vytvoríte zoznam s hromadou informácií.
Pre tohto zákazníka chceli zverejniť popis práce a nechať si automaticky generovať zoznam pracovných ponúk zostupne podľa dátumu zverejnenia. Chceli tiež zobraziť výňatok zo stránky.
Najprv sme teda museli do šablóny stránky pridať úryvkovú podporu. Do súboru functions.php pre ich tému sme pridali:
add_post_type_support ('page', 'excerpt');
Potom sme potrebovali zaregistrovať vlastný krátky kód, ktorý by vygeneroval zoznam podstránok, odkazy na ne a výňatok z nich. Urobte to, musíme použiť WordPress Loop. V functions.php sme pridali:
// Zoznam podstránok vo funkcii Zoznam dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Žiadne záznamy', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ;); $ parent = nový WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' "; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' „.get_the_title ().“ "; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ retazec. = ' "; nakoniec; } else {$ string = ' ". $ atts ['ifempty']. ' "; } wp_reset_postdata (); vrátiť $ reťazec; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Teraz je možné krátky kód implementovať na celom webe a zobraziť tak podradené stránky s odkazom a výňatkom. Použitie:
[list_subpages aclass = "button" ifempty = "Je nám ľúto, momentálne nemáme žiadne voľné pracovné miesta."] Zoznam pracovných miest [/ list_subpages]
Výsledkom je pekný, čistý neusporiadaný zoznam zverejnených pracovných pozícií, ktoré sú podradenými stránkami pod ich kariérnou stránkou.
Ak neboli zverejnené žiadne úlohy (žiadne podradené stránky), zverejní sa:
Prepáčte, momentálne nemáme žiadne voľné pracovné miesta.
Ak boli zverejnené úlohy (podradené stránky), zverejní sa:
Zoznam pracovných pozícií:
- Posledná stránka dieťaťa - Výňatok zo stránky dieťaťa
- Stránka Ďalej dieťa - Výňatok zo stránky dieťaťa
- Stránka Ďalej dieťa - Výňatok zo stránky dieťaťa