web-dev-qa-db-fra.com

L'utilisation de apply_filters ('the_content', $ custom_query-> post_content) modifie la sortie

Déni de responsabilité: désolé si cela a été demandé/répondu, mais je n'ai pas pu trouver la bonne phrase de recherche pour obtenir quelque chose de similaire.

J'édite un modèle pour un site que je n'ai pas créé et je suis tombé sur un comportement génial. C'est probablement intentionnel et pas un bug, mais quelqu'un peut-il expliquer pourquoi cela se produit?

Ce site utilise un plugin appelé Teams qui permet au client de saisir les membres de son personnel. Il semble utiliser single.php pour afficher les membres de l’équipe (ce qui semble alors charger content-single.php via get_template_part( 'content', 'single' );.

Dans le pied de page du site, un disclaimer a été codé en dur de la manière suivante:

$disclaimer_post_id = 311;
$disclaimer_query = get_post($disclaimer_post_id);
$disclaimer = apply_filters('the_content', $disclaimer_query->post_content);
echo $disclaimer;

Alors! Sur chaque page "normale" du site, cela fonctionne très bien. Cependant, lorsqu’un seul membre de l’équipe est visualisé, ses champs sont re-affichés (nom/titre, description/résumé, même les liens de médias sociaux et le bouton d’édition, comme un message normal WP). obtenir le contenu dupliqué dans le pied de page d'en haut.

J'ai parcouru et fait une print_r() sur $disclaimer_query et je peux voir que $disclaimer_query->post_content est en réalité le texte de la clause de non-responsabilité!

Voici ma question:

Pourquoi apply_filters() modifie-t-il la sortie? Cela a-t-il quelque chose à voir avec le fait qu'aucune requête personnalisée ne semble être utilisée avant l'appel de get_post()?

1
armadadrive

Le filtre the_content prend un seul paramètre - $content. Vous ne pouvez donc pas vérifier la publication de cette publication $content.

Ainsi, si l'équipe du plug-in effectue des contrôles incorrects (il peut par exemple utiliser is_singular( <POST_TYPE> )), il modifiera alors tout le contenu imprimé sur la page d'un seul membre de l'équipe.

Vous devrez vérifier quelles fonctions sont assignées à the_content hook et vérifier exactement ce qu'elles font ...

3