更改EDITOR-Style.css样式

时间:2016-05-13 作者:Naz

我在函数中使用以下代码。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中正确地输入了正确的颜色值,但我不理解为什么在使用相同的变量时,它不遵循样式。

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

它不起作用,因为WordPress没有在的上下文中加载editor-style.php, 而你实际上犯了一个致命的错误(get_theme_mod 未定义)。使可能error logging 你就会明白我的意思了。

与其直接指向自定义PHP文件,不如在WordPress中使用“端点”:

add_editor_style( admin_url( \'admin-ajax.php?action=editor-style\' ) );
现在,您可以“监听”何时请求此虚拟样式表,并退出所有令人敬畏的CSSwith 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\'; - 错误实践、路径假设)。

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register