我有一个wordpress设置,我为客户使用大约30个左右的子主题,他们可以从中选择。每个子主题都有自己的功能。当前为php文件。是否可以只设置一个子函数。php并从所有单独的子主题调用它?我想要这个功能的原因是我发现自己不断地对功能进行更改。php和我每次都要处理所有30多个主题。
用于多个子主题的一个子函数.php
嗯,我想说你需要一个自定义插件。所有理由都在本问答中;答:
Where to put my code: plugin or functions.php?
也相关:- Where do I put the code snippets I found here or somewhere else on the web?
- Create a Functionality Plugin Instead of Using Functions.php
/wp-content/themes/common-functions.php
, 然后把你需要的东西贴在里面。在儿童主题中functions.php
使用:require_once ( TEMPLATEPATH . \'/../common-functions.php\' );
或require_once ( WP_CONTENT_DIR . \'/themes/common-functions.php\' );
使用插件。钩入after_setup_theme
并检查当前主题是否为正确的子主题:
add_action( \'after_setup_theme\', \'common_child_theme_functions\' );
function common_child_theme_functions()
{
if ( \'Twenty Twelve\' !== wp_get_theme()->parent() )
return;
// do your work
}
wp_get_theme()
返回aWP_Theme
实例,以及parent()
父主题名称或FALSE
.我不推荐mu插件。真正的插件可以停用,您可以分别为每个站点启用或禁用它们。调整客户的能力;这是一种更干净的方法。
我会使用一个必须使用的插件。该代码将在网络上应用,而您的客户端将无法访问它,因此无法禁用或修改它。
要继续,您只需将代码放在一个文件中并将其放入/wp-content/mu-plugins/
希望这会有所帮助:)
你可以include
几乎可以从任何子主题中获取任何文件,但WordPress的一个鲜为人知的特性是Must Use plugins. 我想我会倾向于这一点。
在中创建一个名为mu plugins的目录wp-content
与普通插件不同,必须使用的插件不会显示在插件列表中,并且除了删除mu插件文件外,不能停用,因此它们可以作为一种全局插件functions.php
.