我已经开发了许多主题,但是,我对构建儿童主题和“特别是”尝试在儿童主题中实现类还很陌生。所以我发现。。。
是否可以在子主题中加载WP Customizer类?就我而言,以下是我在我的孩子主题中所做的:
功能。php
// Setup the Child Theme URL
define(\'child_template_directory\', dirname( get_bloginfo(\'stylesheet_url\')) );
// Get the files in the inc folder
$files_to_require = array( \'theme-customizer\', );
foreach( $files_to_require as $file ) {
locate_template ( "inc/{$file}.php", true, true );
}
inc/主题定制器。php
if ( ! function_exists( \'my_customizer_frontend\' ) && ! class_exists( \'My_Customizer_Frontend\' ) ) {
function my_customizer_frontend() {
load_template( child_template_directory . \'/inc/customizer/class-my-customize-frontend.php\' );
new My_Customizer_Frontend(); //This is line 34
}
add_action( \'init\', \'my_customizer_frontend\' );
}
inc/customizer/class my customizer frontend。php
class My_Customizer_Frontend {
/* Do some stuff */
}
使用上面的示例代码,我无法通过以下错误:
致命错误:在/var/www/html/mydomain中找不到类“My\\u Customizer\\u Frontend”。com/wp-content/themes/child-theme/inc/theme-customizer。php在线34
我一整天都在努力克服这个问题,现在我只是在打转。
我看过了所有的抄本,但这似乎超出了任何地方写的任何东西的范围。
如有任何建议,将不胜感激。
顺致敬意,
最合适的回答,由SO网友:cybmeta 整理而成
我认为错误消息已经足够清楚了:找不到该类。您应该做的第一件事是验证用于加载定义类的文件的路径。
如果这样做并检查child_template_directory
常量,您将看到它没有尾部斜杠,因此此行:
load_template( child_template_directory . \'inc/customizer/class-my-customize-frontend.php\' );
应为:
load_template( child_template_directory . \'/inc/customizer/class-my-customize-frontend.php\' );
无论如何,有一种更好的方法可以获取子主题目录路径:
get_stylesheet_directory()
function.
我会这样做:
load_template( get_stylesheet_directory() . \'/inc/customizer/class-my-customize-frontend.php\' );
或者,至少我可以这样定义常量:
define(\'child_template_directory\', get_stylesheet_directory() );
PD:您的porlbem这不是WP Customizer致命错误。