PHP: Aduprate l'API WordPress per Custruisce un Shortcode per Elencà Subpagine

WordPress PHP

Avemu travagliatu annantu à una implementazione abbastanza cumplessa per un cliente d'imprese avà. U situ hè custruitu in WordPress ma hà una mansa di campane è fischi. Spessu, quandu facciu stu tippu di travagliu, mi piace salvà u codice persunalizatu per rimpiazzallu dopu in altri siti. In questu casu, pensu chì era una funzione cusì utile, vulia sparte cù u mondu. Avemu aduprà u Tema Avada WordPress cù u Fusion Page Builder cum'è tema parente, è sparghjendu un pocu di codice persunalizatu in u nostru tema figliolu.

WordPress hà digià un paru di funzioni in a so API chì ponu esse aduprate per elencà sottupagine, cum'è wp_list_pages è get_pages. U prublema hè chì ùn restituiscenu micca abbastanza infurmazione se sperate di creà dinamicamente un elencu cù una mansa di informazioni.

Per questu cliente, anu vulsutu publicà e descrizzioni di u travagliu è avè a lista di l'aperture di travagliu automaticamente generate in ordine decrescente da a so data di publicazione. Vulianu ancu visualizà un estrattu di a pagina.

Dunque, prima, avemu avutu da aghjunghje un supportu di estratti à u mudellu di pagina. In functions.php per u so tema, aghjustemu:

add_post_type_support ('pagina', 'estrattu');

Dopu, avemu bisognu di registrà un shortcode persunalizatu chì puderà generà l'elencu di sottupagine, ligami per elli, è u strattu per elli. Fate questu, duvemu aduprà u Loop di WordPress. In functions.php, aghjustemu:

// List Subpages in una funzione List dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Nisun Records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'pagina', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ parente = novu WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ cuntenutu. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; intantu; } altru {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); restituisce $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Avà, u shortcode pò esse implementatu in tuttu u situ per vede e pagine di i zitelli cun un ligame è un estrattu. Utilizazione:

[list_subpages aclass = "buttone" ifempty = "Scusate, attualmente ùn avemu micca apertura di travagliu."] Elencu di Jobs [/ list_subpages]

U risultatu hè un bellu elencu pulitu è ​​micca urdinatu di i travagli publicati, chì sò pagine di zitelli in a so pagina di carriera.

Se ùn ci era micca travagli publicati (senza pagine figlioli), publicherà:

Scusate, ùn avemu attualmente alcuna apertura di travagliu.

Se ci sò stati posti di travagliu publicati (pagine figlioli), publicherà:

Elencu di Jobs:

Chì ne pensi?

Stu situ utilizeghja Akismet per reducisce u puzzicheghju. Sapete ciò chì i dati di i vostri dati è processatu.