it-swarm.com.de

Benutzerdefinierter Filter in Wordpress, um Fußzeileninformationen über das Plugin zu ändern?

Grundsätzlich habe ich ein Plugin, das auf der gesamten Seite nach bestimmten Token sucht und diese durch Bilder ersetzt. Das Problem ist, dass ich eines dieser Token in der Fußzeile habe und es, soweit ich das beurteilen kann, keinen Filter für die Fußzeile gibt.

Die Frage ist also, gibt es eine Möglichkeit, einen benutzerdefinierten Filter zu erstellen? Und ist das der beste Weg, dies zu tun? Mein Plugin führt einen preg_match im Inhalt durch und ersetzt ihn, wenn es zum Beispiel "{picture here}" findet. Ich bin nicht sicher, wie ich diese Funktionalität auf die Fußzeile ausweiten soll.

6
Cyprus106

Der Großteil der Fußzeile besteht aus direktem PHP/HTML-Markup. Sie wenden Filter auf dynamische Inhalte an, weshalb es keinen typischen "Filter" für Fußzeilen gibt. Das heißt, es ist relativ einfach, eigene Filter zu WordPress hinzuzufügen.

Angenommen, Ihr footer.php besteht aus folgenden Elementen:

</div>    <!-- close main content div>
<div id="footer">
    <p class="copyright">Copyright 2011 By Me</p>
</div>
</body>
</html>

Nehmen wir an, Sie möchten mithilfe Ihres Filters das Wort "copyright" dynamisch durch das Standard-C-Bild ersetzen. Sie würden dies ersetzen durch:

</div>    <!-- close main content div>
<div id="footer">
    <p class="copyright">
    <?php
    echo apply_filters( 'my_footer_filter', 'Copyright 2011 By Me' );
    ?>
    </p>
</div>
</body>
</html>

Dadurch wird ein benutzerdefinierter Filter mit dem Namen "my_footer_filter" erstellt und auf den Text "Copyright 2011 By Me" angewendet. In Ihrer functions.php-Datei können Sie diesen Filter wie jeden anderen verwenden:

function replace_copyright( $copyright ) {
    // do something to $copyright
    return $copyright;
}
add_filter( 'my_footer_filter', 'replace_copyright' );
10
EAMann