PHP: usa a API de WordPress para crear un código curto para listar subpáxinas

WordPress PHP

Agora estamos traballando nunha implementación bastante complexa para un cliente empresarial. O sitio está a ser construído en WordPress pero ten unha chea de campás e asubíos. Moitas veces, cando estou a facer este tipo de traballo, gústame gardar o código personalizado para posteriormente utilizalo noutros sitios. Neste caso, pensei que era unha función tan útil, quería compartila co mundo. Estamos a usar o Tema Avada WordPress co Fusion Page Builder como tema principal e implementando bastante código personalizado no tema infantil.

WordPress xa ten un par de funcións na súa API que se poden usar para listar subpáxinas, como wp_list_pages e get_pages. O problema é que non devolven información suficiente se esperas crear dinámicamente unha lista cunha chea de información.

Para este cliente, querían publicar descricións de traballo e xerar automaticamente a lista de ofertas de traballo en orde descendente ata a súa data de publicación. Tamén querían amosar un extracto da páxina.

Entón, primeiro, tivemos que engadir soporte de extractos ao modelo de páxina. En functions.php para o seu tema, engadimos:

add_post_type_support ('páxina', 'extracto');

Despois, necesitamos rexistrar un código abreviado personalizado que xerase a lista de subpáxinas, ligazóns a elas e o extracto das mesmas. Fai isto, temos que usar o Bucle de WordPress. En functions.php, engadimos:

// Listar subpáxinas nunha función List dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Sen rexistros', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'páxina', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publicación_data', 'order' => 'DESC' ,); $ pai = nova WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ contido. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; mentres tanto; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); devolver $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Agora, o código curto pódese implementar en todo o sitio para amosar as páxinas fillas cunha ligazón e un extracto. Uso:

[list_subpages aclass = "button" ifempty = "Sentímolo, actualmente non temos ningunha oferta de traballo."] Lista de postos de traballo [/ list_subpages]

O resultado é unha boa e limpa lista desordenada dos traballos publicados, que son páxinas secundarias na súa páxina de carreira.

Se non se publicaron traballos (sen páxinas secundarias), publicará:

Sentímolo, actualmente non temos ningunha oferta de traballo.

Se houbese traballos publicados (páxinas fillos), publicará:

Lista de postos de traballo:

¿Que pensas?

Este sitio usa Akismet para reducir o spam. Aprende a procesar os teus datos de comentarios.