更新的问题:
我已经宣布了一个基本的儿童主题。当我创建一个将样式表排队的函数时,我的网站崩溃了,并给了我一个致命的错误:Cannot redecaler thando\\u stylesheets()(之前在…….load\\u stylesheets()中声明)是一个新函数,尚未声明,但我收到一个错误,说它已声明。
我的函数是新的,尚未声明。为什么我要重新声明错误?我以前创建的所有其他主题都没有这样的问题
这是错误日志
PHP致命错误:无法在/Applications/MAMP/htdocs/in progress/bros/wp-content/themes/wifibros/functions.PHP:5)中重新声明thando\\u样式表()。php在线3
function thando_stylesheets() {
wp_register_style(\'bootstrap\',
get_template_directory_uri().\'/css/bootstrap.min.css\',
array(),
1,
\'all\');
wp_enqueue_style(\'bootstrap\');
}
SO网友:Jacob Peattie
不能在父主题正在使用的子主题中使用函数名。父主题可能有一个名为load_stylesheets()
, 因此,如果向子主题添加具有该名称的函数,则会出现此错误。
为了解决这个问题,您需要为您的子主题的函数指定一个唯一的名称。这类问题就是为什么在函数名前面加前缀是最佳做法(eg. mytheme_load_stylesheets()
) 或使用namespaces.
并非在某些情况下,父主题可能会有;“可插拔”;功能。如果父主题在条件内定义函数,如下所示:
if ( ! function_exists( \'load_stylesheets\' ) ) {
function load_stylesheets() {
// etc.
}
}
然后,可以通过创建一个同名的新函数来替换子主题中的该函数。这是可能的,因为父主题正在检查您的子主题在定义函数之前是否尚未定义具有该名称的函数。如果父主题未执行此检查,则不能使用该名称。