説明

Quicktags APIを使用すると、WordPress Classicエディタのテキスト(HTML)モードに追加のボタンを含めることができます。

Quicktags - img1

履歴

このAPIはWordPress 3.3で導入されました。

使用法

  1. QTags.addButton( id, display, arg1, arg2, access_key, title, priority, instance, object );

説明

Quicktags APIを使用すると、WordPress Classicエディタのテキスト(HTML)モードに追加のボタンを含めることができます。

Quicktags - img2

戻り値

(mixed)Nullまたは互換性のために必要なボタンオブジェクト。

以下の例は、テキストエディタのデフォルトQuicktagsにHTMLボタンを追加します。

モダンな例

この例では、Quicktagsがキューに追加されるときにJavaScriptを追加するためにインラインJS APIを使用します。

  1. /**
  2. * Add a paragraph tag button to the quicktags toolbar
  3. *
  4. * @return void
  5. */
  6. function wporg_add_quicktag_paragraph() {
  7. wp_add_inline_script(
  8. 'quicktags',
  9. "QTags.addButton( 'eg_paragraph_v2', 'p_v2', '<p>', '</p>', '', 'Paragraph tag v2', 2, '', { ariaLabel: 'Paragraph', ariaLabelClose: 'Close Paragraph tag' });"
  10. );
  11. }
  12. add_action( 'admin_enqueue_scripts', 'wporg_add_quicktag_paragraph' );

別のモダンな例

この例では、

  • 1. 適切なWordPress関数を使用してスクリプトをキューに追加しますwp_enqueue_script
  • 2. QuickTagがクリックされたときまたはその後に実行したいJavaScriptを呼び出します。

スクリプトをキューに追加

以下のコードをアクティブテーマのfunctions.phpに追加します。

  1. function enqueue_quicktag_script(){
  2. wp_enqueue_script( 'your-handle', get_template_directory_uri() . '/editor-script.js', array( 'jquery', 'quicktags' ), '1.0.0', true );
  3. }
  4. add_action( 'admin_enqueue_scripts', 'enqueue_quicktag_script' );

JavaScript自体

新しいファイルeditor-scriptを作成し、アクティブテーマディレクトリの下に保存します。

  1. QTags.addButton( 'eg_paragraph_v3', 'p_v3', my_callback, '', '', 'Prompted Paragraph tag', 3, '', { ariaLabel: 'Prompted Paragraph' } );
  2. function my_callback(){
  3. var my_stuff = prompt( 'Enter Some Stuff:', '' );
  4. if ( my_stuff ) {
  5. QTags.insertContent( '<p>' + my_stuff + '</p>' );
  6. }
  7. }

従来の例

この例では、管理フッターフックのwp_script_isにハードコーディングされたJavaScriptを手動で追加します。モダンな例を使用することを検討してください。上記を参照してください。

  1. /**
  2. * Add more buttons to the quicktags HTML editor
  3. *
  4. * @return void
  5. */
  6. function wporg_traditional_add_quicktags() {
  7. if ( ! wp_script_is( 'quicktags' ) ) {
  8. return;
  9. }
  10. ?>
  11. <script type="text/javascript">
  12. QTags.addButton( 'eg_paragraph', 'p', '<p>', '</p>', '', 'Paragraph tag', 1, '', { ariaLabel: 'Paragraph', ariaLabelClose: 'Close Paragraph tag' } );
  13. QTags.addButton( 'eg_hr', 'hr', '<hr />', '', '', 'Horizontal rule line', 201, '', { ariaLabel: 'Horizontal' } );
  14. QTags.addButton( 'eg_pre', 'pre', '<pre lang="php">', '</pre>', '', 'Preformatted text tag', 111, '', { ariaLabel: 'Pre', ariaLabelClose: 'Close Pre tag' } );
  15. </script>
  16. <?php
  17. }
  18. add_action( 'admin_print_footer_scripts', 'wporg_traditional_add_quicktags', 11 );

注意:

  • 参照エラーを避けるために、「quicktags」スクリプトが使用されているかどうかを確認します。
  • WordPress 6.0以降、スクリプトの読み込み順序が変更され、「QTags is not defined」というエラーがadd_action()の3番目のパラメータなしで発生します。また、10より大きい数値を指定する必要があります(例: 11)。

「p」ボタンのHTMLは次のようになります:

  1. <input type="button" id="qt_content_eg_paragraph" class="ed_button button button-small" title="Paragraph tag" aria-label="Paragraph" value="p">

各ボタンのID値は自動的に文字列qtcontentで前置きされます。

以下はquicktags.jsからのドキュメントブロックのダンプであり、それ自体で非常に便利です。

  1. /**
  2. * Main API function for adding a button to Quicktags
  3. *
  4. * Adds qt.Button or qt.TagButton depending on the args. The first three args are always required.
  5. * To be able to add button(s) to Quicktags, your script should be enqueued as dependent
  6. * on "quicktags" and outputted in the footer. If you are echoing JS directly from PHP,
  7. * use add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) or add_action( 'wp_footer', 'output_my_js', 100 )
  8. *
  9. * Minimum required to add a button that calls an external function:
  10. * QTags.addButton( 'my_id', 'my button', my_callback );
  11. * function my_callback() { alert('yeah!'); }
  12. *
  13. * Minimum required to add a button that inserts a tag:
  14. * QTags.addButton( 'my_id', 'my button', '<span>', '</span>' );
  15. * QTags.addButton( 'my_id2', 'my button', '<br />' );
  16. */

説明

Quicktags APIを使用すると、WordPress Classicエディタのテキスト(HTML)モードに追加のボタンを含めることができます。

Quicktags - img3

ソースファイル

qt.addButton()のソースはjs/_enqueues/lib/quicktags.jsにあり、ビルド中にwp-incudes/js/quicktags.jsおよびwp-includes/js/quicktags.min.jsに出力されます。