Marketing de Contenu

PHP: utilisez l'API WordPress pour créer un shortcode afin de répertorier les sous-pages

Nous travaillons actuellement sur une implémentation assez complexe pour un client d'entreprise. Le site est en cours de création dans WordPress mais contient une tonne de cloches et de sifflets. Souvent, lorsque je fais ce type de travail, j'aime enregistrer le code personnalisé pour le réutiliser plus tard sur d'autres sites. Dans ce cas, je pensais que c'était une fonction tellement utile que je voulais la partager avec le monde. Nous utilisons le Thème WordPress Avada avec Fusion Page Builder en tant que thème parent, et en déployant un peu de code personnalisé dans notre thème enfant.

WordPress a déjà quelques fonctions dans son API qui peuvent être utilisées pour lister les sous-pages, comme wp_list_pages et get_pages. Le problème est qu'ils ne renvoient pas suffisamment d'informations si vous espérez créer dynamiquement une liste avec un tas d'informations.

Pour ce client, ils souhaitaient publier des descriptions de poste et faire en sorte que la liste des offres d'emploi soit automatiquement générée par ordre décroissant en fonction de leur date de publication. Ils voulaient également afficher un extrait de la page.

Donc, tout d'abord, nous avons dû ajouter la prise en charge d'extraits au modèle de page. Dans functions.php pour leur thème, nous avons ajouté:

add_post_type_support ('page', 'extrait');

Ensuite, nous devions enregistrer un shortcode personnalisé qui générerait la liste des sous-pages, des liens vers celles-ci et l'extrait correspondant. Faites cela, nous devons utiliser le Boucle WordPress. Dans functions.php, nous avons ajouté:

// Liste des sous-pages dans une fonction de liste dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Aucun enregistrement', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ parent = nouveau WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ chaîne. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ chaîne. = ' '; en attendant; } else {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); return $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Désormais, le shortcode peut être implémenté sur tout le site pour afficher les pages enfants avec un lien et un extrait. Usage:

[list_subpages aclass = "button" ifempty = "Désolé, nous n'avons actuellement aucune offre d'emploi."] Liste des emplois [/ list_subpages]

Le résultat est une belle liste claire et non ordonnée des emplois publiés, qui sont des pages enfants sous leur page carrière.

S'il n'y a pas eu de travaux publiés (pas de pages enfants), il publiera:

Désolé, nous n'avons actuellement aucun poste vacant.

S'il y avait des travaux publiés (pages enfants), il publiera:

Liste des emplois:

Douglas Karr

Douglas Karr est le directeur marketing de OuvrirINSIGHTS et le fondateur de la Martech Zone. Douglas a aidé des dizaines de startups MarTech à succès, a contribué à la due diligence de plus de 5 milliards de dollars d'acquisitions et d'investissements MarTech, et continue d'aider les entreprises à mettre en œuvre et à automatiser leurs stratégies de vente et de marketing. Douglas est un expert et conférencier de renommée internationale en matière de transformation numérique et de MarTech. Douglas est également l'auteur d'un guide pour les nuls et d'un livre sur le leadership d'entreprise.

Articles Relatifs

Retour à bouton en haut
Fermer

Adblock détecté

Martech Zone est en mesure de vous fournir ce contenu gratuitement car nous monétisons notre site grâce aux revenus publicitaires, aux liens d'affiliation et aux parrainages. Nous vous serions reconnaissants de supprimer votre bloqueur de publicités lorsque vous consultez notre site.