it-swarm.com.de

Mit apply_filters ('the_content', $ custom_query-> post_content) wird die Ausgabe geändert

Haftungsausschluss: Entschuldigung, wenn dies gefragt/beantwortet wurde, aber ich konnte nicht den richtigen Suchbegriff finden, um etwas Ähnliches zu erhalten.

Ich bearbeite eine Vorlage für eine Site, die ich nicht erstellt habe, und bin auf irres Verhalten gestoßen. Es ist wahrscheinlich beabsichtigt und kein Fehler, aber kann jemand erklären, warum dies passiert?

Diese Site verwendet ein Plugin namens Teams, mit dem der Kunde seine Mitarbeiter eingeben kann. Es scheint single.php zu verwenden, um die Teammitglieder auszugeben (was wiederum content-single.php über get_template_part( 'content', 'single' ); zu laden scheint).

In der Fußzeile der Website wurde ein Haftungsausschluss wie folgt fest codiert:

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

So! Auf jeder "normalen" Seite der Site funktioniert dies einwandfrei. Wenn Sie jedoch ein einzelnes Teammitglied anzeigen, werden dessen Felder (Name/Titel, Beschreibung/Beschreibung, sogar Links zu sozialen Medien und Bearbeitungsschaltfläche wie bei einem normalen WP -Post) tatsächlich erneut ausgegeben Duplizierte Inhalte werden in der Fußzeile von oben angezeigt.

Ich habe eine print_r() am $disclaimer_query ausgeführt und ich kann sehen, dass $disclaimer_query->post_content tatsächlich der Disclaimer-Text ist!

Hier ist meine Frage:

Warum ändert apply_filters() die Ausgabe? Hat es etwas damit zu tun, dass keine benutzerdefinierte Abfrage verwendet wird, bevor get_post() aufgerufen wird?

1
armadadrive

Der the_content-Filter akzeptiert nur einen Parameter - $content, sodass Sie nicht überprüfen können, von welchem ​​Beitrag dieser $content stammt.

Wenn also das Plugin-Team falsche Überprüfungen durchführt (es kann beispielsweise is_singular( <POST_TYPE> ) verwenden), werden alle auf einer einzelnen Teammitgliedsseite gedruckten Inhalte geändert.

Sie müssen überprüfen, welche Funktionen the_content hook zugewiesen sind und was genau sie tun ...

3