В разработке Wordpress Theme я ставлю в очередь файл colors.php, который выступает в качестве таблицы стилей.
wp_register_style( 'custom_colors', $uri . '/assets/css/colors.php', [], $ver );
wp_enqueue_style( 'custom_colors' );
Я создал раздел настройщика WordPress и настройки для управления цветами.Я добавил свою настройку в настройщик следующим образом:
$wp_customize->add_setting( 'primary_color', [
'default' => '#1ABC9C'
]);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'primary_color_input',
array(
'label' => __( 'Primary Accent Color', 'myslug' ),
'section' => 'color_section',
'settings' => 'primary_color',
)
)
);
Когда я вызываю get_theme_mod непосредственно в файле header.php в качестве теста, чтобы отобразить значение, которое оно работает:
$color = get_theme_mod('primary_color', '#1ABC9C'); //hex color is default
echo $color;
Но когда я вызываю ту же строку в моем файле colors.php, я получаю сообщение об ошибке:
Uncaught Error: Call to undefined function get_theme_mods() in /app/public/wp-content/themes/mytheme/assets/css/colors.php:28
Я хочу использовать значение get_them_mod для обновления всех цветов ссылок в моем файле colors.php вместо динамической печатиout style sin the head.
Может кто-нибудь помочь мне понять, что здесь происходит не так?
Это в моем файле colors.php:
header("content-type: text/css; charset: UTF-8");
$color = get_theme_mod('primary_color', '#1ABC9C');
a { color: <?php echo $color; ?>; }