具体地说,我很喜欢允许在我的插件之外的PHP中使用一个短函数来更改它。
这正是过滤器的用途。它们允许插件中的代码调用任何其他想要为该过滤器注册处理函数的人。您可能已经使用Wordpress“系统”操作和过滤器通过使用add_filter
, 而且很容易制作一个其他任何人都可以调用的新过滤器。
E、 例如,在您的插件中,您现在可能有以下内容:
<img src="path/to/plugin/logo.jpg">
因此,首先,您需要确保要让其他人筛选的内容都在一个变量中:
<?php
$my_plugin_logo = "path/to/plugin/logo.jpg";
echo "<img src=\\"" . $my_plugin_logo ."\\">";
然后允许任何其他代码对其进行过滤:
<?php
$my_plugin_logo = "path/to/plugin/logo.jpg";
$filtered_logo = apply_filters(\'myplugin_filter_logo\', $my_plugin_logo);
echo "<img src=\\"" . $filtered_logo ."\\">";
这将调用针对刚调用的新过滤器注册函数的任何代码
\'myplugin_filter_logo\'
.
E、 例如,您的用户可以将其放入自己的功能中。php或在新插件中更改徽标:
add_filter(\'myplugin_filter_logo\', \'bobs_new_logo\', 10, 1);
function bobs_new_logo($old_logo_path) {
return "path/to/bobs/logo.gif";
}
注:
过滤函数获取旧值,但由于在这种情况下不必使用它,如果没有注册过滤函数,则会返回传入的默认值