PHP: Použijte WordPress API k vytvoření zkráceného kódu pro zobrazení podstránek
Právě pracujeme na poměrně komplexní implementaci pro podnikového klienta. Web se staví na WordPressu, ale má spoustu zvonků a píšťal. Často, když dělám tento typ práce, rád si uložím vlastní kód pro pozdější použití na jiných webech. V tomto případě jsem si myslel, že je to tak užitečná funkce, chtěl jsem ji sdílet se světem. Používáme Téma Avada WordPress s nástrojem Fusion Page Builder jako nadřazené téma a nasazení docela dost vlastního kódu v našem podřízeném tématu.
WordPress již ve svém API obsahuje několik funkcí, které lze použít k výpisu podstránek, například wp_list_pages a get_pages. Problém je v tom, že nevracejí dostatek informací, pokud doufáte, že dynamicky vytvoříte seznam s hromadou informací.
U tohoto zákazníka chtěli zveřejnit popisy úkolů a nechat si automaticky generovat seznam volných pracovních míst v sestupném pořadí podle data jejich zveřejnění. Chtěli také zobrazit výňatek ze stránky.
Nejprve jsme tedy museli do šablony stránky přidat výňatkovou podporu. V souboru functions.php pro jejich téma jsme přidali:
add_post_type_support ('page', 'excerpt');
Poté jsme potřebovali zaregistrovat vlastní krátký kód, který by generoval seznam podstránek, odkazy na ně a výňatek z nich. Udělejte to, musíme použít Smyčka WordPress. V functions.php jsme přidali:
// Seznam podstránek ve funkci Seznam dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'No Records', '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 (); } $ string. = ' '; nakonec; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); vrátit $ řetězec; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Nyní lze krátký kód implementovat na celém webu a zobrazit tak podřízené stránky s odkazem a výňatkem. Používání:
[list_subpages aclass = "button" ifempty = "Omlouváme se, ale momentálně nemáme žádná volná místa."] Seznam úloh [/ list_subpages]
Výsledkem je pěkný, čistý neuspořádaný seznam publikovaných úloh, což jsou podřízené stránky pod jejich kariérní stránkou.
Pokud nebyly publikovány žádné úlohy (žádné podřízené stránky), bude publikovat:
Litujeme, v současné době nemáme žádné pracovní pozice.
Pokud byly publikovány úlohy (podřízené stránky), bude publikovat:
Seznam pracovních míst:
- Poslední stránka dítěte - Výňatek z podřízené stránky
- Další podřízená stránka - Výňatek z podřízené stránky
- Další podřízená stránka - Výňatek z podřízené stránky