未显示TinyMCE锚定按钮

时间:2014-07-31 作者:codeview

我使用这个过滤器和函数来显示TinyMCE编辑器的自定义、精简版本。一切正常。。。除了“锚定”按钮不会显示(“锚定”)之外?根据TinyMCE网站(http://www.tinymce.com/wiki.php/Controls), 这是要使用的控件。

Does anyone know why the anchor button will not show?

enter image description here

EDIT: 代码示例来自这里(这显示了我正在使用的完整代码,而不仅仅是下面的代码片段):https://gist.github.com/mrwweb/9937127

add_filter( \'mce_buttons\', \'wpse_mce_buttons_1\' );
function wpse_mce_buttons_1( $buttons ) {
    $buttons = array( \'styleselect\', \'bold\', \'italic\', \'link\', \'unlink\', \'bullist\', \'numlist\', \'table\', \'anchor\');

    return $buttons;
}
add_filter( \'mce_buttons_2\', \'wpse_mce_buttons_2\' );
function wpse_mce_buttons_2( $buttons ) {
    $buttons = array();
    return $buttons;
}

2 个回复
最合适的回答,由SO网友:Ben Dyer 整理而成

我遇到了完全相同的问题,并找到了解决方法。

问题是TinyMCE的锚插件没有作为默认Wordpress安装的一部分包含在内。所以Wordpress说包括:

$buttons[] = \'anchor\';
…这是行不通的,因为不存在用于锚定的TinyMCE插件。

如果你去TinyMCE\'s website, 您可以直接下载完整的软件包。一旦你有了它,你就会想将/js/tinymce/plugins/anchor/移动到你的Wordpress安装中,安装地址为/wp-includes/js/tinymce/plugins/。

基本上,您希望在安装中包含/wp-includes/js/tinymce/plugins/anchor/。

一旦可用,您需要添加一个函数,告诉TinyMCE查找该插件(在主题的functions.php中或添加到插件中):

function my_mce_external_plugins($plugins) {

    $plugins[\'anchor\'] = \'/wp-includes/js/tinymce/plugins/anchor/plugin.min.js\';
    return $plugins;
}
add_filter(\'mce_external_plugins\', \'my_mce_external_plugins\');
现在可以将按钮添加到可视化编辑器中:

function extra_editor_buttons($buttons) {
    $buttons[] = \'anchor\';
    $buttons[] = \'superscript\';
    $buttons[] = \'subscript\';
    return $buttons;
}
add_filter("mce_buttons_2", "extra_editor_buttons");
等等:

Wordpress Visual Editor, Now With Anchor Button

此解决方案的灵感来自this related question 这是关于TinyMCE中的代码按钮,但有完全相同的解决方案(插件丢失)。锚定插件和代码插件都缺失an open bug 添加文件,所以在将来的版本中这可能不会成为问题。

希望这也能帮助其他人!

SO网友:Romain

您的第一个筛选器不正确。”styleselect\'在tinyMCE上提供并生成下拉列表。你不能添加这样的信息。

下面是要做的事情。

Nice way:

首先,创建一个名为“custom\\u wp\\u admin\\u editor\\u tinymce”的单独文件。php”(或任何其他)。函数内部。php,请将文件包含在创建上一个函数的正确路径中。

// Add the heading dropdown (x6) and add the format dropdown
include_once(TEMPLATEPATH.\'/Path to you doc/custom_wp_admin_editor_tinymce.php\');
这是您的“custom\\u wp\\u admin\\u editor\\u tinymce”模板。

<?php
// Add the heading dropdown (x6) and add the format dropdown
function enable_style_dropdown($buttons) {
    $buttons[] = \'styleselect\';
    return $buttons;
}
add_filter("mce_buttons_2", "enable_style_dropdown");


function myformatTinyMCE( $in ) {
    $in[\'block_formats\'] = \'Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6\';
    $style_formats = array (
        array( \'title\' => \'bold\', \'block\' => \'p\', \'classes\' => \'bold\' ),
        array( \'title\' => \'italic\', \'block\' => \'p\', \'classes\' => \'italic\' ),    
        array( \'title\' => \'link\', \'block\' => \'p\', \'classes\' => \'link\' ),
        array( \'title\' => \'unlink\', \'block\' => \'p\', \'classes\' => \'unlink\' ),
        array( \'title\' => \'bullist\', \'block\' => \'p\', \'classes\' => \'bullist\' ),
        array( \'title\' => \'numlist\', \'block\' => \'p\', \'classes\' => \'numlist\' ),
        array( \'title\' => \'table\', \'block\' => \'p\', \'classes\' => \'table\' ),
        array( \'title\' => \'anchor\', \'block\' => \'p\', \'classes\' => \'anchor\' )
    );
    $in[\'style_formats\'] = json_encode( $style_formats );
    $in[\'style_formats_merge\'] = false;
    $in[\'wordpress_adv_hidden\'] = false;
    return $in;
}
add_filter( \'tiny_mce_before_init\', \'myformatTinyMCE\' );
?>

Dirty way:

直接在函数中通过前面的代码。php

结束