[WordPress] 投稿画面のタグリンクをカスタマイズする

目的

不要なタグリンクを削除したい!
ついでに、コードブロック用のタグを追加したい!

上記の場合、

  • 標準のタグ
    (「b」〜「タグを閉じる」、右上の全画面表示)
  • Pz-LinkCard
    (「リンクカード」)
  • Simplicity
    (「pre」〜「danger」)

がすべて表示されているので、それぞれ必要なもののみ残して非表示にします。

方法

以下のそれぞれのコードをfunction.phpに追加する。

標準のタグを消す

// 標準のタグを消す
add_filter( 'quicktags_settings', function ( $qtInit ) {
    //$qtInit['buttons'] = 'strong,em,link,block,del,img,ul,ol,li,code,more,spell,close,fullscreen';

    // 上記のうち、**必要なもののみを記述する**
    $qtInit['buttons'] = 'close';

    // 全部非表示にする場合はカンマ
    // $qtInit['buttons'] = ',';
    return $qtInit;
} );

Pz-LinkCardのタグを消す

WordPressでリンクをカード形式で表示する Pz-LinkCard
リンクをカード形式で表示させるWordPressプラグイン「Pz-LinkCard」を公式プラグインディレクトリで公開しています。当ページは「Pz-LinkCard」の説明書のようなもので、プラグインのバージョンアップとともに更新しています

(ver2.0.0で追加してくださった機能を私は非表示にしようとしている)

できなかった…
「リンクカード」のタグ自体は
blog/wp-content/plugins/pz-linkcard/pz-linkcard.phpの221行目で
add_actionされているのですが、
単純にそれをremove_actionするだけでは、戻り値falseが返ってきて

Warning: Cannot modify header information – headers already sent by 〜

が表示されてしまいました…

WordPressまじむずい٩(๑`н´๑)۶

Simplicityのタグを消す

<?php
// Simplicityのタグを非表示
function add_quicktags_to_text_editor() {
  //スクリプトキューにquicktagsが保存されているかチェック
  if (wp_script_is('quicktags')){?>
    <script>
      QTags.addButton('qt-keyboard-key','キーボード','<span class="keyboard-key">','</span>');
    </script>
  <?php
  }
}

オリジナルのタグを追加

Prism

prism.jsを使用するにあたり<pre = class="line-numbers"></pre>を簡単に利用したかったので、タグリンクに追加。

<?php
// オリジナルのタグを追加
function add_my_quicktag() {
    ?>
    <script type="text/javascript">
    QTags.addButton('pre_all', 'pre all', '<pre class="line-numbers" data-start="1" data-line="0">', '</pre>');
    QTags.addButton('pre_line', 'pre line', '<pre class="line-numbers">', '</pre>');
    </script>
    <?php
}
add_action('admin_print_footer_scripts', 'add_my_quicktag');

結果

すっきりー!(「リンクカード」も使わないんだよなぁ…)