我在WordPress中有一个父主题,它在WordPress中添加了许多功能和特性,包括几个元变量 .
在我的子主题中,我在WordPress中添加了一些新的自定义帖子类型,因此我尝试修改元框以将它们包含在新的自定义帖子类型中 .
这是父主题functions.php文件:http://pastebin.com/G1CVM6U2
我的想法是,我只需要在我的子主题中添加代码,该代码将从元素框中添加的父主题中删除操作,然后将元文件文件复制到我的子主题中,根据需要修改它们,然后使用add_action引入一个调用那些元文件文件的新函数 .
但是,即使能够从父主题中删除动作,我也有一段时间 .
我在我的子主题函数中尝试了以下几种变体.php:
remove_action('init', 'add_metaboxes');
remove_action('add_meta_box', 'add_metaboxes');
它不会删除元框,因为当我检查页面/帖子编辑器时,它们仍然可见 .
如果不运行remove_action,我就不能在修改后的元文件文件中调用新的“add_action” . 当我尝试这样做的时候,我得到了一个白色的死亡屏幕,因为我猜是同样的功能被重新宣布 .
我怀疑因为父主题中的动作被称为一个类的一部分,在子主题中覆盖它的过程可能是不同的?
希望对此有所帮助 .
1 回答
示例1:删除正常命名的添加操作
示例2:删除通过引用传递的函数
add_action看起来像这样:
这里的问题是wordpress将随机标识字符串添加到函数名称,例如(
a3898orj34930add_metaboxes
),这是随机的,所以我们需要做的是使用strpos
在密钥中查找名称 . 我为此创建了一个自定义函数 .我们在主题设置之后挂钩到删除父主题操作 .