PHP: utilitzeu l'API de WordPress per crear un codi curt per llistar subpàgines
Ara mateix estem treballant en una implementació força complexa per a un client empresarial. El lloc s’està construint a WordPress, però té un munt de campanes i xiulets. Sovint, quan estic fent aquest tipus de treballs, m’agrada desar el codi personalitzat per tornar-lo a utilitzar posteriorment en altres llocs. En aquest cas, vaig pensar que era una funció tan útil, que volia compartir-la amb el món. Estem utilitzant el fitxer Tema Avada WordPress amb el Fusion Page Builder com a tema principal i desplegant força codi personalitzat al tema infantil.
WordPress ja té un parell de funcions a la seva API que es poden utilitzar per llistar subpàgines, com wp_list_pages i get_pages. El problema és que no retornen prou informació si espereu crear dinàmicament una llista amb un munt d'informació.
Per a aquest client, volien publicar descripcions de feina i que la llista d’ofertes de feina es generés automàticament en ordre descendent fins a la data de publicació. També volien mostrar un fragment de la pàgina.
Per tant, primer hem hagut d’afegir suport de fragments a la plantilla de pàgina. A functions.php per al seu tema, hem afegit:
add_post_type_support ('pàgina', 'extracte');
Aleshores, havíem de registrar un codi abreujat personalitzat que generés la llista de subpàgines, enllaços a elles i el fragment per a elles. Feu això, hem d’utilitzar el fitxer Loop de WordPress. A functions.php, hem afegit:
// Llista de subpàgines en una funció de llista dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Sense registres', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'pàgina', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ pare = nova 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. = ' '; mentrestant; } else {$ string = ' $ atts ['ifempty']. ' '; } wp_reset_postdata (); retorna $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Ara, el codi curt es pot implementar a tot el lloc per mostrar les pàgines secundàries amb un enllaç i un extracte. Ús:
[list_subpages aclass = "button" ifempty = "Ho sentim, actualment no tenim cap oferta de treball."] Llista de llocs de treball [/ list_subpages]
El resultat és una llista neta i ordenada dels llocs de treball publicats, que són pàgines secundàries de la seva pàgina professional.
Si no hi ha hagut feines publicades (no hi ha pàgines secundàries), publicarà:
Ho sentim, actualment no tenim cap oferta de feina.
Si hi havia feines publicades (pàgines secundàries), publicarà:
Llista de llocs de treball:
- Última pàgina infantil - Extracte de la pàgina infantil
- Següent pàgina infantil - Extracte de la pàgina infantil
- Següent pàgina infantil - Extracte de la pàgina infantil