在WordPress中如何返回null/false或覆盖指定过滤器
WordPress过滤器返回null/false/覆盖逻辑实现
适用场景
WordPress开发过程中需要对指定过滤器做特殊处理时可参考以下方案,可实现让过滤器直接返回null/false,或是直接覆盖原有过滤器的执行效果。
代码示例
基础绑定过滤器实现自定义返回
给modify_js_string过滤器绑定自定义回调,实现覆盖原有返回值的效果:
// 注册自定义过滤器回调,10为优先级,1为接受的参数数量 add_filter('modify_js_string', [$this, 'exclude_modify_js_string'], 10, 1); /** * 自定义过滤器回调函数 * @param mixed $original_value 上一个过滤器传递的原始值 * @return mixed 自定义返回值 */ public function exclude_modify_js_string($original_value) { // 可添加自定义判断逻辑,满足条件时再执行覆盖操作 // 如需返回false直接替换成 return false; // 如需返回null直接替换成 return null; return false; }
覆盖第三方/原有过滤器逻辑
如果需要覆盖其他已注册的同钩子过滤器,可以先移除原有回调再绑定自定义逻辑:
// 移除原有过滤器回调,优先级必须和原有注册时的优先级一致 remove_filter('modify_js_string', 'original_registered_callback', 10); // 注册自己的过滤器回调 add_filter('modify_js_string', function($value) { // 自定义逻辑,此处示例直接返回null return null; }, 10, 1);
内容的提问来源于stack exchange,提问作者CodeObserver
相关产品推荐
相关产品推荐

