我已经创建了一个名为head的Wordpress页面模板。php
然后我进入了/wp-includes/general模板。php,通过复制已有的默认get\\u header()函数,我在下面添加了这个新的自定义函数:
function get_head( $name = null )
{
do_action( \'get_head\', $name );
$templates = array();
$name = (string) $name;
if ( \'\' !== $name )
{
$templates[] = "head-{$name}.php";
}
$templates[] = \'head.php\';
if (\'\' == locate_template($templates, true))
{
load_template( ABSPATH . WPINC . \'/theme-compat/head.php\');
}
}
然后,我在一个自定义页面模板文件中调用了上述函数,它运行得很好。
然后Wordpress更新了/wp includes/general模板。php文件和我的自定义函数被覆盖。
所以我的问题是,我应该把上面的函数放在哪里,这样它就不会被Wordpress更新或特定主题的更新所覆盖?
我是否按原样(在您建议的新文件中)放置上述函数,而不包括任何其他内容?(或者/wp includes/general-template.php文件是否也包含其他内容,这就是为什么我的函数在该文件中以表单形式工作,而在其他文件中不工作?)
谢谢你的帮助!!
最合适的回答,由SO网友:fischi 整理而成
您应该将此函数放入主题的functions.php
.
不要弄乱核心WordPress文件(wp中的任何内容都包括,wp admin目录)。错误可能导致站点无法正常运行,文件也会更新。
WordPress从不更新您的自定义主题,因此这是一种方式。
当然,如果有很多函数,可以创建library
目录,并包括包含函数的所有文件。
你也可以为你的自定义函数创建一个插件——但在你的情况下,因为你的主题依赖于函数,所以它应该包含在主题中。