Пользовательский фильтр в Wordpress для изменения информации нижнего колонтитула с помощью плагина?
В принципе, у меня есть плагин, который ищет определенные токены по всей странице и заменяет их изображениями. Проблема в том, что у меня есть один из этих жетонов в нижнем колонтитуле, и, насколько я могу судить, для нижнего колонтитула нет фильтра.
Итак, вопрос в том, есть ли способ создать пользовательский фильтр? И это лучший способ сделать это? Мой плагин делает preg_match в содержимом и, если он находит, например, "{изображение здесь}", он заменяет его. Однако я не уверен, как распространить эту функциональность на нижний колонтитул?
1 answers
Большая часть нижнего колонтитула представляет собой прямую разметку PHP/HTML. Вы применяете фильтры к динамическому контенту, поэтому в нижнем колонтитуле нет обычного "фильтра". Тем не менее, добавить свои собственные фильтры в WordPress относительно легко.
Допустим, ваш footer.php
состоит из следующего:
</div> <!-- close main content div>
<div id="footer">
<p class="copyright">Copyright 2011 By Me</p>
</div>
</body>
</html>
И допустим, вы хотите динамически заменить слово "авторское право" стандартным изображением C с помощью вашего фильтра. Вы бы заменили это на:
</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>
Это создает пользовательский фильтр, называемый "my_footer_filter" и применяет его к тексту "Авторское право 2011 Мной". В вашем файле functions.php
вы можете использовать этот фильтр так же, как и любой другой:
function replace_copyright( $copyright ) {
// do something to $copyright
return $copyright;
}
add_filter( 'my_footer_filter', 'replace_copyright' );