WordPress : Obtenez un balisage pour la publication sans charger dans le modèle
J’écris un plugin de shortcode qui affiche les messages en fonction de certains paramètres passés dans le shortcode. J’ai le wp_query
droit d’obtenir les publications et j’essaie maintenant d’obtenir le balisage des publications en fonction des fichiers de modèle du thème.
Essentiellement, get_template_part est exactement ce que je veux… sauf qu’il charge directement le balisage dans le modèle. Je souhaite obtenir le balisage du contenu, effectuer un peu de post-traitement, puis renvoyer le balisage du shortcode. Essentiellement,
$listings = new WP_Query(...);
while ( have_posts() ) {
$markup .= get_template_part('content', $post->post_type);
}
return $markup
Sauf que ce n’est évidemment pas la façon dont cela get_template_part
fonctionne. Comment puis-je obtenir le balisage d’un article sans afficher le balisage dans la page ?
Solution n°1 trouvée
Si vous recherchez uniquement le contenu d’un article avant qu’il ne soit chargé dans un modèle, vous recherchez probablement get_the_content()
.
Solution n°2 trouvée
Je n’ai pas trouvé de moyen WordPress de faire cela et en regardant la source WP, il semble que cela ne sera probablement jamais vraiment possible. Cependant, j’ai pu obtenir une solution en utilisant PHP vanille en redirigeant la sortie standard dans un tampon et en chargeant le tampon dans une variable.
$listings = new WP_Query(...);
ob_start();
while ( have_posts() ) {
get_template_part('content', $post->post_type);
}
$markup = ob_get_contents();
ob_end_clean();
return $markup
0 commentaire