WordPress Visual Editorは、WysiWygビューと表示されるフォーマットボタンを提供するTinymceエディターコントロールを搭載しています。 Tinymce APIとWordPressのフィルターフックのおかげで、WordPress Visual Editorに独自の機能を追加できます。具体的には、CSSクラスで選択したテキストをラップするカスタムTinymceプラグインを作成および登録する方法について説明します。
TINYMCEプラグインの作成WordPress Webサイトで、WP-Content/Plugins/Tinymce-Custom-Classフォルダーを作成します プラグインのファイルをここに保存するので、次のコードを使用して、次にTinymce-Custom-Class.phpというファイルを作成します。
これにより、WordPressにプラグインに関する情報が提供され、Tinymceアクションとフィルターを登録するコンストラクトを設定します。
wordpress tinymceフィルターTinymceは、ビジュアルエディターツールバーに要素を登録するための2つのキーフィルターを提供します。
mce_buttons:Tinymceツールバーにボタンを追加/削除するために使用されます(https://codex.wordpress.org/plugin_api/filter_reference/mce_buttons、
mce_buttons_2、 これらのフィルターを呼び出す前に、WordPress管理画面にいることを確認したいと思います。次のコードを__constructに追加します:<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
<span>if ( is_admin() ) { </span> <span>add_action( 'init', array( &$this, 'setup_tinymce_plugin' ) ); </span><span>}</span>
ユーザー>プロフィールを介してこれをオフにするため、ユーザーがVisual Editorを使用しているかどうかを確認します。繰り返しますが、ユーザーがビジュアルエディターを使用していない場合は、他のことをする必要がないため、関数を返します。
上記のチェックが通過する場合、2つのTinymce WordPressフィルターが登録されています-MCE_EXTERNAL_PLUGINSおよびMCE_BUTTONS。最初のフィルター-MCE_EXTERNAL_PLUGINS - Visual Editorと対話するTinymce JavaScriptプラグインファイルを登録できます。クラス内のこのフィルターの関数呼び出しを追加しましょう。
ここでは、すべてのTinymce JavaScriptプラグインを含む$ Plugin_Array内にJavaScriptファイルを登録します。2番目のフィルター - MCE_BUTTONS - は、Visual Editorにボタンを登録したいことをTinymceに伝えます。繰り返しますが、クラス内のこのフィルターの関数呼び出しを追加しましょう。
これは、Tinymceボタン(custom_class)のプログラム名を登録します。 JavaScriptプラグインを作成
<span>/** </span><span>* Check if the current user can edit Posts or Pages, and is using the Visual Editor </span><span>* If so, add some filters so we can register our plugin </span><span>*/ </span><span>function setup_tinymce_plugin() { </span> <span>// Check if the logged in WordPress User can edit Posts or Pages </span> <span>// If not, don't register our TinyMCE plugin </span> <span>if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) { </span> <span>return; </span> <span>} </span> <span>// Check if the logged in WordPress User has the Visual Editor enabled </span> <span>// If not, don't register our TinyMCE plugin </span> <span>if ( get_user_option( 'rich_editing' ) !== 'true' ) { </span> <span>return; </span> <span>} </span> <span>// Setup some filters </span> <span>add_filter( 'mce_external_plugins', array( &$this, 'add_tinymce_plugin' ) ); </span> <span>add_filter( 'mce_buttons', array( &$this, 'add_tinymce_toolbar_button' ) ); </span> <span>}</span>
mce_external_pluginsに電話したとき、javaScriptファイルを参照しました。次に、そのファイルを作成し、JavaScriptコードを追加する必要があります。これにより、Tinymceボタンの出力方法と、クリックしたときに何をすべきかがわかります。
Tinymce-CustomClass.jsというプラグインフォルダーに新しいファイルを作成し、次のコードを挿入します。このjavaScript関数は、いくつかのアクションを実行します:
<span>/** </span><span> * Adds a TinyMCE plugin compatible JS file to the TinyMCE / Visual Editor instance </span><span> * </span><span> * <span>@param <span>array</span> $plugin_array Array of registered TinyMCE Plugins </span></span><span> * <span>@return <span>array</span> Modified array of registered TinyMCE Plugins </span></span><span> */ </span><span>function add_tinymce_plugin( $plugin_array ) { </span> <span>$plugin_array['custom_class'] = plugin_dir_url( __FILE__ ) . 'tinymce-custom-class.js'; </span> <span>return $plugin_array; </span> <span>}</span>
Tinymce Plugin Managerクラスを呼び出します。これは、多くのTinymceプラグイン関連のアクションを実行するために使用できます。具体的には、追加関数を使用してプラグインをTinymceに追加しています。
プラグインフォルダー内にicon.png画像も含める必要があります。これは、ボタンに使用されるアイコン画像です。
コードを保存し、WordPress管理>プラグインでプラグインをアクティブにします。
<span>/** </span><span> * Adds a button to the TinyMCE / Visual Editor which the user can click </span><span> * to insert a custom CSS class. </span><span> * </span><span> * <span>@param <span>array</span> $buttons Array of registered TinyMCE Buttons </span></span><span> * <span>@return <span>array</span> Modified array of registered TinyMCE Buttons </span></span><span> */ </span><span>function add_tinymce_toolbar_button( $buttons ) { </span> <span>array_push( $buttons, 'custom_class' ); </span> <span>return $buttons; </span> <span>}</span>
ボタンをクリックすると、
アラートをプロンプトに置き換えましょう。ユーザーに、ビジュアルエディターの選択したテキストをラップしたいCSSクラス名を尋ねましょう。
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
これらのチェックが通過した場合、エディターのexecCommand関数を実行して、選択したテキストを置き換え、選択したテキストを入力されたCSSクラスを含むスパンタグに包まれています。
すべてが機能した場合は、「テキスト」ビューに切り替えてください。選択したテキストがスパンタグに包まれていることがわかります。結論
WordPressプラグインを作成して、Tinymce Visual Editorにボタンを追加しました。このプロセスでは、WordPressがTinymceとの統合に使用するフィルターと、ボタンを追加してクリックしたときにアクションを実行するために必要なJavaScriptコードを調査しました。
はい、WordPress Visual Editorは完全に応答性が高く、モバイルデバイスで使用できます。ただし、画面サイズが小さいため、「キッチンシンク」のドロップダウンにいくつかのツールバーボタンが隠されている可能性があります。 'tiny_mce_before_init'フィルターと「style_formats」オプションを使用して、WordPress Visual Editorにカスタム形式。カスタム形式を配列の配列として定義でき、それぞれが形式を定義します。各形式には、「タイトル」、「インライン」、「クラス」、「ラッパー」プロパティを含める必要があります。編集者WordPress管理エリアのユーザー>プロフィールに移動し、[視覚エディターを無効にします]オプションを確認します。 WordPress Visual Editorでショートコードを使用できます。エディターにショートコードを入力するだけで、投稿が表示されると処理されます。ツールバーの「テーブル」ボタンを使用して、ビジュアルエディター。このボタンが表示されていない場合は、Tinymce Advancedのようなプラグインをインストールして追加する必要がある場合があります。
以上がWordPress Visual Editorにカスタム機能を追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。