PHP: użyj interfejsu API WordPress, aby zbudować krótki kod do wyświetlania podstron
Obecnie pracujemy nad dość złożoną implementacją dla klienta korporacyjnego. Witryna jest budowana w WordPress, ale ma mnóstwo dzwonków i gwizdków. Często, gdy wykonuję tego typu prace, lubię zapisywać niestandardowy kod do późniejszego wykorzystania w innych witrynach. W tym przypadku pomyślałem, że to tak przydatna funkcja, że chciałem się nią podzielić ze światem. Używamy Motyw Avada WordPress z Fusion Page Builder jako motyw nadrzędny i wdrażając sporo niestandardowego kodu w naszym motywie potomnym.
WordPress ma już kilka funkcji w swoim API, których można używać do wyświetlania listy podstron, takich jak wp_list_pages i get_pages. Problem polega na tym, że nie zwracają wystarczającej ilości informacji, jeśli masz nadzieję na dynamiczne utworzenie listy z wieloma informacjami.
W przypadku tego klienta chcieli publikować opisy ofert pracy i automatycznie generować listę ofert pracy w porządku malejącym według daty publikacji. Chcieli również wyświetlić fragment strony.
Więc najpierw musieliśmy dodać obsługę fragmentów do szablonu strony. W functions.php dla ich motywu dodaliśmy:
add_post_type_support ('strona', 'fragment');
Następnie musieliśmy zarejestrować niestandardowy shortcode, który generowałby listę podstron, linki do nich oraz ich fragmenty. Zrób to, musimy użyć Pętla WordPress. W functions.php dodaliśmy:
// Wyświetl podstrony w funkcji listy dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Brak rekordów', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publication_date', 'order' => 'DESC' ,); $ rodzic = nowe WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ rodzic-> have_posts ()): $ rodzic-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; koniec; } else {$ string = ' '. $ atts [' ifempty ']. ” '; } wp_reset_postdata (); return $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Teraz krótki kod można zaimplementować w całej witrynie, aby wyświetlać strony podrzędne z linkiem i fragmentem. Stosowanie:
[list_subpages aclass = "button" ifempty = "Przepraszamy, obecnie nie mamy żadnych ofert pracy."] Lista zleceń [/ list_subpages]
Rezultatem jest ładna, czysta, nieuporządkowana lista opublikowanych ofert pracy, które są stronami podrzędnymi pod ich stroną kariery.
Jeśli nie opublikowano żadnych ofert pracy (żadnych stron podrzędnych), opublikuje:
Przepraszamy, obecnie nie mamy żadnych ofert pracy.
Jeśli zostały opublikowane oferty pracy (strony podrzędne), opublikuje:
Lista prac:
- Najnowsza strona podrzędna - Fragment ze strony podrzędnej
- Następna strona podrzędna - Fragment ze strony podrzędnej
- Następna strona podrzędna - Fragment ze strony podrzędnej