我在函数中使用以下代码。php文件添加一个格式下拉菜单到WordPress可视化编辑器,只需一个选项,自定义1。
<?php
function custom_styles_button($buttons) {
array_unshift($buttons, \'styleselect\');
return $buttons;
}
add_filter(\'mce_buttons_2\', \'custom_styles_button\');
function my_mce_before_init_insert_formats( $init_array ) {
// Define the style_formats array
$style_formats = array(
// Each array child is a format with it\'s own settings
array(
\'title\' => \'Custom 1\',
\'block\' => \'span\',
\'classes\' => \'custom-1\',
\'wrapper\' => true,
),
);
// Insert the array, JSON ENCODED, into \'style_formats\'
$init_array[\'style_formats\'] = json_encode( $style_formats );
return $init_array;
}
// Attach callback to \'tiny_mce_before_init\'
add_filter( \'tiny_mce_before_init\', \'my_mce_before_init_insert_formats\' );
function add_editor_styles() {
add_editor_style( \'editor-style.php\' );
}
add_action( \'init\', \'add_editor_styles\' );
我的编辑。php包含以下代码;
<?php
header("Content-type: text/css");
$test = \'#006699\';
?>
.custom-1 {
color : <?php echo $test ?>;
}
因此,当我在WordPress可视化编辑器中选择一段文本并将其自定义为-1时,它在可视化编辑器中的颜色将变为#006699。这很好。然而,我希望能够从定制器中动态控制颜色,我正在使用Kirki框架以编辑器样式选择颜色和代码。php看起来像;
<?php
$test = get_theme_mod( \'graviton_custom_1_text_color\', \'#FFFFFF\' );
header("Content-type: text/css");
?>
.custom-1 {
color : <?php echo $test ?>;
}
但这不起作用,在可视化编辑器的“自定义格式”下拉列表中,“自定义1选择”保持高亮显示,文本颜色保持黑色。我知道代码;
$test = get_theme_mod( \'graviton_custom_1_text_color\', \'#FFFFFF\' );
确实在$test中正确地输入了正确的颜色值,但我不理解为什么在使用相同的变量时,它不遵循样式。
最合适的回答,由SO网友:TheDeadMedic 整理而成
它不起作用,因为WordPress没有在的上下文中加载editor-style.php
, 而你实际上犯了一个致命的错误(get_theme_mod
未定义)。使可能error logging 你就会明白我的意思了。
与其直接指向自定义PHP文件,不如在WordPress中使用“端点”:
add_editor_style( admin_url( \'admin-ajax.php?action=editor-style\' ) );
现在,您可以“监听”何时请求此虚拟样式表,并退出所有令人敬畏的CSS
with WordPress loaded:
function wpse_226550_editor_style() {
header( \'Content-Type: text/css; charset=UTF-8\' );
echo $css; // Example!
exit;
}
add_action( \'wp_ajax_nopriv_editor-style\', \'wpse_226550_editor_style\' );
add_action( \'wp_ajax_editor-style\', \'wpse_226550_editor_style\' );
不要被“ajax”引用所拖累-
admin-ajax.php
是WordPress中一种流行的发送各种自定义响应的技术,但无需自己手动加载WordPress(例如。
require \'./path/to/wordpress/wp-load.php\';
- 错误实践、路径假设)。