我正在寻找一个过滤器,提供在WordPress中生成的完整页面,包括带有元标记、正文、样式和动态内容的标题部分。\\u content()和\\u extract()只对动态部分起作用,而请求过滤器似乎只对SQL查询起作用(或者不起作用)?
我想在整个页面的所有链接或按钮中过滤一些数据。我该怎么做?
我正在寻找一个过滤器,提供在WordPress中生成的完整页面,包括带有元标记、正文、样式和动态内容的标题部分。\\u content()和\\u extract()只对动态部分起作用,而请求过滤器似乎只对SQL查询起作用(或者不起作用)?
我想在整个页面的所有链接或按钮中过滤一些数据。我该怎么做?
您可以使用output buffering 为了实现这一点。
直接在渲染模板之前添加高优先级挂钩:
add_action(\'template_redirect\', \'foo_buffer_go\', 0);
function foo_buffer_go(){
ob_start(\'foo_buffer_callback\');
}
添加优先级极低的关机挂钩。add_action(\'shutdown\', \'foo_buffer_stop\', 1000);
function foo_buffer_stop(){
ob_end_flush();
}
在回调中,您可以操作呈现的HTML。function foo_buffer_callback($buffer){
//Do something with the buffer (HTML)
return $buffer;
}
您可以在此处下载此插件:http://3-3.me/B9lK启用插件访问站点,它将呈现为“Foo Bar”,这意味着您正在捕获生成的HTML的全部内容
对@BrianFegger的代码进行轻微更改,使输出缓冲区仅在打开时关闭。这样做的好处是能够有条件地决定是否过滤。
if ($want_to_modify_content) {
add_action(\'template_redirect\', \'YOURPLUGIN_buffer_start\', 0);
}
function YOURPLUGIN_buffer_start() {
add_action(\'shutdown\', \'YOURPLUGIN_buffer_stop\', PHP_INT_MAX);
ob_start(\'YOURPLUGIN_modify_content\');
}
function YOURPLUGIN_buffer_stop() {
ob_end_flush();
}
function YOURPLUGIN_modify_content($content) {
//modify $content
return $content;
}
您可以使用HTTP API 获取post URL.
我的网站的菜单使用“外观>>菜单”下的内置菜单。我想做一个非常简单的更改:我想把菜单中的每一个二级ul都包装在一个DIV中。最简单的方法是什么?