web-dev-qa-db-ja.com

TinyMCEアンカボタンが表示されていない

私はこのフィルタと関数を使ってTinyMCEエディタのカスタム版を表示しています。 「アンカー」ボタンが表示されない(「アンカー」)ことを除いて、すべてが本来の機能を果たしますか? TinyMCEのウェブサイト( http://www.tinymce.com/wiki.php/Controls )によると、それが使用するコントロールです。

アンカーボタンが表示されない理由を誰かが知っていますか?

enter image description here

編集: ここにコード例があります(これは私が使用しているコード全体を示しています。下のコードだけではありません): 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;
}
3
codeview

私はまったく同じ問題を抱えており、これに対する解決策を見つけました。

問題は、TinyMCEのアンカープラグインがデフォルトのWordpressインストールの一部として含まれていないことです。だからWordpressは含めるように言っている間:

$buttons[] = 'anchor';

アンカー用のTinyMCEプラグインが存在しないためです。

TinyMCEのウェブサイト にアクセスすると、フルパッケージを直接ダウンロードできます。それを入手したら、/ js/tinymce/plugins/anchor /を/ wp-includes/js/tinymce/plugins /にあるWordpressインストールに移動します。

基本的に、あなたのインストールには/ 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");

Etvoilà:

Wordpress Visual Editor, Now With Anchor Button

この解決策は この関連する質問 TinyMCEのコードボタンに関するものでしたが、まったく同じ解決策を持っていました(プラグインがありませんでした)。アンカープラグインとコードプラグインの両方が欠けていて/ファイルを追加するための 未解決のバグ があるので、多分これは将来のバージョンでは問題にならないでしょう。

うまくいけば、これは他の誰かにも役立つことができます!

7
Ben Dyer

あなたの最初のフィルタは正しくありません。 'styleselect'であなたにくれてtinyMCE上にドロップダウンを作ります。そのような情報を追加することはできません。

これが何をするかです。

すてきな方法:

まず、 'custom_wp_admin_editor_tinymce.php'という名前の別のファイルを作成します。 function.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_wp_admin_editor_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' );
?>

汚い方法:

Function.phpの中に直接前のコードを貼り付けます

0
Romain