WP Customizer Fatal Ошибка при попытке загрузить класс в дочернюю тему

Однако у меня появилось много тем, но я новичок в создании детских тем и «особенно», которые пытаются реализовать классы в дочерних темах. Итак, я нашел …

Можно ли загрузить класс WP Customizer в дочернюю тему? В моем случае, вот что я делаю в своей дочерней теме:

functions.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 ); } 

вкл / тема-customizer.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' ); } 

вкл / настройщик / класс-мой-настройщик-frontend.php

 class My_Customizer_Frontend { /* Do some stuff */ } 

Используя приведенный выше примерный код, я не могу пройти мимо следующей ошибки:

Неустранимая ошибка: класс 'My_Customizer_Frontend' не найден в /var/www/html/mydomain.com/wp-content/themes/child-theme/inc/theme-customizer.php в строке 34

Я пытался преодолеть это в течение целого дня, и сейчас просто вращаю свои колеса.

Я прошел через весь код, но это, кажется, вне сферы действия чего-либо, написанного где угодно.

Любые советы будут очень признательны.

С наилучшими пожеланиями,

Solutions Collecting From Web of "WP Customizer Fatal Ошибка при попытке загрузить класс в дочернюю тему"

Я думаю, что сообщение об ошибке достаточно ясно: класс не найден. Первое, что вам нужно сделать, это проверить путь, который вы используете, для загрузки файла, где определен класс.

Если вы это сделаете и проверьте значение константы 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' ); 

Во всяком случае, есть лучший способ получить путь directoy дочерней темы: get_stylesheet_directory() .

Я бы сделал:

 load_template( get_stylesheet_directory() . '/inc/customizer/class-my-customize-frontend.php' ); 

Или, по крайней мере, я бы определил константу таким образом:

 define('child_template_directory', get_stylesheet_directory() ); 

PD: Ваш porlbem Это не фатальная ошибка настраивателя WP.