Tun WordPress-widget (oder sidebar) Haken existieren?
Ich versuche, die filter sind ALLE widget-Ausgabe durch einen einfachen filter, aber finde keine Haken und hoffte, wies in die richtige Richtung. Oder vielleicht sind meine Bemühungen nicht auch möglich?
Meine einfache filter ist so etwas wie dieses:
function clean_widget_output( $input ) {
return str_replace( array( "\t", "\n", "\r" ), '', $input );
}
add_[FILTER OR ACTION]( 'need_a_hook', 'clean_widget_output', 99 );
Irgendwelche Ideen? Ich bin Recht neu in PHP, aber ich kann es umgehen.
InformationsquelleAutor der Frage Jeff | 2009-09-06
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese war getragen von dem Bedürfnis/Wunsch zu reinigen, die Gott schrecklich HTML ausgespuckt, von WordPress-widgets. Ich Liebe, was Sie tun, aber einige der die Ausgabe macht mich Weinen.
Die kurze Antwort ist
output buffering
weil ich konnte nicht finden, dass jedes widget oder Seitenleiste Haken.Ist die lange Antwort:
Dann rufen Sie
echo tidy_sidebar( 'sidebar-name-or-id' );
aus Ihrem Thema.InformationsquelleAutor der Antwort Jeff
Ich hatte ein ähnliches Problem und nach einem Blick durch Adam Brown Liste aller WordPress-filter-hooksfestgestellt, dass die Haken, die ich brauchte, vorhanden (
widget_title
als pxl erwähnt), aber es gibt keine Haken, um alle widget-Ausgabe. Ich dachte, ich würde näher auf die Lösung, die für mich gearbeitet.Theoretisch, die
widget_title
Haken sollte auf alle widgets auf Ihrem blog, aber ich bin mir sicher, dass einige 3rd-party-widgets vernachlässigen die notwendigen code-Zeile zu gelten, Titel, Filter, es ist also nicht unfehlbar. Bei mir hat es geklappt, aber, und es kann verwendet werden, um zu gelten benutzerdefinierte 'shortcode' (genauer gesagt, in diesem Fall 'longcode') oder die Syntax, um Ihre widget-Titel. Zum Beispiel, wollte ich Sie gelegentlich auch html-code in meiner widget-Titel, aber standardmäßig werden alle html wird entfernt. Also, um der Lage sein, Dinge wie<em>
- tags, um den text in einige meiner Titel, die ich wählte eine benutzerdefinierte syntax:[[
statt<
&]]
statt>
(für ex[[em]]
und[[/em]]
) und dann erstellt eine Funktion in mein theme ist functions.php Datei zu verarbeiten, die benutzerdefinierte syntax und ersetzen Sie es mit der html-äquivalent:Dann fügte ich eine Zeile darunter hinzufügen, um die Funktion als filter:
Den
add_filter
/apply_filter
- Funktionalität automatisch geht der Inhalt gefiltert wird, wie der erste parameter der Funktion angegeben, die als die filter, so dass Sie alles, was Sie tun müssen.Damit zu tun, etwas ähnliches für den main-Ausgang der widget, den Sie benötigen würde, um alle widgets zu sehen, was Haken, die Sie verwenden und stellen Sie sicher, dass Sie einen filter für Ihre main-Ausgang, als
add_filter()
für jede Haken-Sie finden mit Ihrem benutzerdefinierten callback-Funktion (zum Beispiel, ist eswidget_text
für das Text-widget-Ausgabe, oderget_search_form
für die Suche bilden [können Sie es in wp-includes/general-template.php amget_search_form()
Funktion]). Das problem ist, dass einige der dynamisch generierten widgets nicht Haken haben (wie das Meta-widget), das ist der Grund, warum die Ausgabe-Pufferung Lösung Jeff bietet, ist die flexibelste, wenn auch nicht ideale, Lösung.InformationsquelleAutor der Antwort Andrew Patton
gibt es viele hooks für wordpress widgets, die nicht dokumentiert sind. Der wordpress-codex nicht aufgeführt, aus welchem Grund auch immer (wie diese Haken kann sich in Zukunft ändern und wird unerwartet mit neuen updates und Versionen)... also verwenden Sie diese mit größter Vorsicht.
finden Sie heraus, was Sie sind, gibt es mindestens 2 Orte, um zu sehen:
enthalten in diesen beiden Dateien ist eine ziemlich gute Auflistung aller hooks in wordpress nutzt.
Ein Beispiel wäre ein filter für widgets ist
widget_title
wieder, verwenden Sie diese mit Vorsicht, Sie sind nicht garantiert, um zu arbeiten Vergangenheit die spezifische version des Codes, den Sie suchen.
InformationsquelleAutor der Antwort pxl
Ich bin nicht sicher, wenn Sie eingeführt, die widget_text filter, vielleicht haben Sie nicht haben es in '09, wenn diese Frage wurde ursprünglich gefragt, aber da es jetzt da, und für den Willen eines jeden, der bekommt diese stackoverflow, wie ich aus google und das passiert einfach zu Lesen weit genug nach unten, um zu sehen, diese Antwort, es ist jetzt eigentlich ganz einfach:
InformationsquelleAutor der Antwort
Vielleicht auch überprüfen Sie heraus die dynamic_sidebar_params filter --
Ein weiterer link --
InformationsquelleAutor der Antwort dkretz