我在哪里存储调用自定义页面模板文件的自定义函数?

时间:2015-04-24 作者:Sprout Coder

我已经创建了一个名为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文件是否也包含其他内容,这就是为什么我的函数在该文件中以表单形式工作,而在其他文件中不工作?)

谢谢你的帮助!!

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

您应该将此函数放入主题的functions.php.

不要弄乱核心WordPress文件(wp中的任何内容都包括,wp admin目录)。错误可能导致站点无法正常运行,文件也会更新。

WordPress从不更新您的自定义主题,因此这是一种方式。

当然,如果有很多函数,可以创建library 目录,并包括包含函数的所有文件。

你也可以为你的自定义函数创建一个插件——但在你的情况下,因为你的主题依赖于函数,所以它应该包含在主题中。

结束