web-dev-qa-db-de.com

So fügen Sie allen Widget-Ausgaben einen Filter hinzu

Gibt es einen letzten Filter, der über die Widgets ausgeführt wird, bevor sie an den Browser gesendet werden? Ich möchte einen Filter hinzufügen, der allen Links in allen Widgets rel="nofollow" hinzufügt.

Zum Beispiel kann ich dem Text-Widget einen Filter hinzufügen:

add_filter('widget_text', 'xrvel_nfp_modify_nofollow');

Aber ich möchte nicht jeden einzelnen Haken für jedes Widget aufspüren. (Außerdem hat das RSS-Widget nicht einmal einen Filter. Trac-Ticket gesendet )

4
Dan Gayle

Es gibt hier einen anderen Thread, in dem eine Problemumgehung erörtert wird.

Nun ... die bekannte PHP-Problemumgehung, wenn eine Funktion keine Ausgabe "get to variable" liefert ... benutze ob_start: http://php.net/manual/en/function.ob-start.php um nur die Ausgabe zu erfassen und zu bearbeiten, bevor sie auf den Weg geschickt wird.

Führt zu Stackoverflow: https://stackoverflow.com/search?q=%2Bwordpress+sidebar+%2Bob-start+

2
edelwater

Die Ausgabe hängt vollständig von jedem einzelnen Widget ab. Es wird direkt von der widget() -Methode des Widgets wiedergegeben, daher gibt es keine allgemeinen Filter, die für alle gelten.

2
wyrfel