PHP: Použijte WordPress API k vytvoření zkráceného kódu pro zobrazení podstránek

WordPress PHP

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:

Co si myslíte?

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.