因为你排除了remove_action
只有一种方法可以做到这一点。你已经猜到了:preg_repalce
, substr
混合,但需要一点帮助和PHP DOM
add_action(\'wp_footer\', \'my_start_footer_ob\', 1);
function my_start_footer_ob() {
ob_start("my_end_footer_ob_callback");
}
add_action(\'wp_footer\', \'my_end_footer_ob\', 1000);
function my_end_footer_ob() {
ob_end_flush();
}
function my_end_footer_ob_callback($buffer) {
// remove what you need from he buffer
return $buffer;
}
内
my_end_footer_ob_callback
您可以编辑
$buffer
满足您的需求。这个
$buffer
在调用所有操作和筛选器后,参数应包含页脚的所有内容。如果它不只是编辑
1000
到a
bigger number 因此
my_end_footer_ob
被称为last。
现在,我不知道是什么HTML action生成但您可以使用的内容pre_replace
或一系列substr
s将其删除。
如果要使用PHP DOM 这样做:
function my_end_footer_ob_callback($buffer) {
// remove what you need from he buffer
$doc = new DOMDocument;
$doc->loadHTML($buffer);
$docElem = $doc->getElementById("theID");
if($docElem !== NULL) // if it exists
$docElem->parentNode->removeChild($docElem);
return $doc->getElementsByTagName(\'body\')->firstChild->nodeValue;
}
告诉我这是否适合你。