2015-10-28 6 views
0

Я пытаюсь использовать пространство имен PHP при регистрации функции customizer в wordpress, мое имя файла - «customizer.php», которое входит в функции functions.php. Я загрузки логотипа на настройщика, и это дает следующее сообщение об ошибкекак использовать пространство имен php с customize_register?

«Фатальная ошибка:„Корни \ Sage \ Customizer \ WP_Customize_Upload_Control“Класс не найден в customizer.php»

Это код, я использую.

namespace Roots\Sage\Customizer; 
add_action('customize_register',__NAMESPACE__.'\\sageCustomizeRegister'); 
function sageCustomizeRegister($wp_customize) { 

$wp_customize->add_setting('site_logo', [ 
     'type' => 'theme_mod', 
     'default' => NULL, 
]); 

$wp_customize->add_control( 
    new WP_Customize_Upload_Control( 
    $wp_customize, 
    'site_logo', 
    [ 
      'label'  => __('Site Logo', 'sage'), 
      'section' => 'title_tagline', 
      'description' => 'Please upload site logo to show in header' 
    ]) 
);  

} 

Просьба указать, что делать, чтобы решить эту проблему.

ответ

3

Проблема у вас есть с этой линией:

new WP_Customize_Upload_Control( 

Пространством имен в верхней части файла означает, что вы инстанцирование несуществующего класса. Это эквивалент:

new \Roots\Sage\Customizer\WP_Customize_Upload_Control(

Вам необходимо обратиться к классу в глобальном пространстве. Просто префикс класса, который вы вызываете с обратной косой чертой.

new \WP_Customize_Upload_Control(

Дальнейшее чтение: http://php.net/manual/en/language.namespaces.php

Смежные вопросы