Получил собственный аргумент для этого элемента управления ( foo ) и пытаюсь получить его значение как часть каталога очереди. >
Итак, пользовательский аргумент foo правильно отображается в функции render_content();
Когда я пытаюсь сделать то же самое в функции foo_enqueue(); (да, я знаю, что это связано с действием), это нарушение.
После этого даже при рендеринге содержимого вывод аргумента foo исчезает.
Класс выглядит так:
Код: Выделить всё
class Foo_Control extends WP_Customize_Control {
public $type = 'foo_control';
public $foo; // declare foo argument
public function __construct( $manager, $id, $args = array(), $options = array() ) {
parent::__construct( $manager, $id, $args );
add_action( 'customize_controls_enqueue_scripts', array( $this, 'foo_enqueue' ), 15 );
}
public function foo_enqueue() {
wp_enqueue_script( 'foo-script', get_template_directory_uri() . '/js/foo-script.js', array( 'jquery' ), '1.0', true );
// $this->foo = $foo_dir;
// wp_enqueue_script( 'foo-script', get_template_directory_uri() . '/js/'.$foo_dir.'.js', array( 'jquery' ), '1.0', true );
// js file is not loading with $foo_dir and brokes display foo at render_content after apply
}
public function render_content() {
echo $this->label; // Foo label
echo $this->description; // Foo desc
echo $this->foo; // foo-script
}
}
Код: Выделить всё
$wp_customize->add_setting( 'my_foo_control', array(
'type' => 'theme_mod',
));
$wp_customize->add_control( new Foo_Control( $wp_customize,'my_foo_control', array(
'section' => 'homepage',
'label' => 'Foo label',
'description' => 'Foo desc',
'foo' => 'foo-script', // custom argument
) ));
- Пробовал с $this->foo,
- Пробывал с функцией a, функцией b($a)
- Пробывал с функцией a() { b();
- Проверено с помощью self::render_content(); внутри foo_enqueue();
Подробнее здесь: https://stackoverflow.com/questions/786 ... -enqueue-f