如何从子主题函数的父主题中删除一个REQUIRED_ONCE管理面板?

时间:2011-07-07 作者:micah

在父主题中,以下内容位于functions.php 文件

require_once(TEMPLATEPATH . \'/admin/admin-menu.php\');
在儿童主题的function.php, 此代码将包括子管理面板。

require_once(STYLESHEETPATH . \'/admin/admin-menu.php\');
正如您所看到的,我不应该同时使用b/c两个文件,底部文件包括get_stylesheet_directory_uri() 而不是get_template_directory_uri() 对于某些本地化文件(js、css)。因此,我需要从加载中删除父文件

我认为我需要使用remove_action 胡克,但我不知道怎么做才对。在谷歌上也找不到好的答案。

我开始在functions.php 文件在我的子主题中,但我不知道如何正确地编写它。

function remove_parent_admin_panel {
   remove_action(\'remove_panel\', \'[WHAT-GOES-HERE?]\');
}
那么我想我需要使用add_action 钩子添加上述函数以删除父管理面板。

我应该包装父对象吗require_once 使用函数语句?我走对了吗?

2 个回复
最合适的回答,由SO网友:Otto 整理而成

对于需要/包含PHP文件,但仍允许子主题完全替换这些PHP文件的情况,应使用locate\\u template函数。

示例:父级执行以下操作:

locate_template( \'admin/file.php\', true );

这将查找管理员/文件。php文件中的子主题或父主题,然后对其进行require(这就是true的目的)。

因此,要替换子级中的文件,只需替换子级中的文件。易于理解的容易的

注意:该方法默认使用require\\u一次。如果只需要,则传递第三个参数false。

SO网友:Chip Bennett

父主题的内部\\admin\\admin-menu.php 文件,查找函数add_menu_page(). 它应该包装在一个函数中,该函数在add_action( \'admin_init\', \'function-name\' ) 呼叫

你需要打电话remove_action( \'admin_init\', \'function-name\' ) 不管函数名是什么。

结束

相关推荐

为什么当我将_PAGE放到unctions.php文件中时,它不工作?

我有一个名为“Apple”的页面,该页面的ID为2533。在第页中。php文件我有一行:echo $bannerimg 函数中的这个函数。php:if ( is_page( \'2533\' ) ) { // also tested with \'Apple\' $bannerimg = \'apple.jpg\'; } elseif ( is_page( \'test\' ) ) { $bannerimg =