我们在使用WordPress过程中经常需要复写一些WordPress提供的方法,举个最简单的例子,如登录页面的title会包含WordPress字符,对SEO和自己来说可能会觉得不太舒服。如:
此时我们通过在functions.php
中定义以下方法即可抹掉WordPress字符:
/**
* 移除登录时提示的title中的WordPress信息
*/
function mylogin_title($login_title){
return str_replace("— WordPress",'',$login_title);
}
add_filter('login_title', 'mylogin_title');
其中原理如下:
其中:
apply_filters( 'login_title', $login_title, $title );
第一个参数“login_title”为过滤器名称,$login_title 为可修改参数, $title 为辅助参数实现方法时查阅到相关资料也没发现具体作用,注册的方法也不能添加辅助参数。执行完注册函数之后得到返回值再进行页面渲染。
在 functions.php
中定义的 add_filter('login_title', 'mylogin_title');
第一次参数login_title
为注册器名称,第二个参数为方法名称。框架在执行 apply_filters
时会自动调用到我们注册的 mylogin_title
方法,在mylogin_title中即可进行相应的操作。
通过上面的原理我们就可以进行比较多的函数定义,自定义我们主题特性。
另外WordPress还有 add_action
无参形式的执行自定义函数形式。WordPress通过 do_action
去执行,使用者通过 add_action
去注册。