【WordPress】面倒なコードハイライトやアドセンスなどの記述をショートコード化して AddQuicktag で管理する

【WordPress】面倒なコードハイライトやアドセンスなどの記述をショートコード化して AddQuicktag で管理する

長崎帆船祭り2014に凄~く行きたい Latin です。

さて今回はWordPressのちょっとしたカスタマイズです。

WordPressで記事を書いてると、定型文やコードハイライト、アドセンスなどの記述って結構、めんどくさいんですよね。でも、面倒くさい割には、ある程度使うフォーマットは決まってたりします。
例えばコードハイライトの

<pre class="prettyprint lang-html">hogehoge</pre>
とか。

アドセンスにしろ、記事ごとに広告フォーマットを変える事は案外少なく、アドセンスIDや商品IDだけの差だったりする事も多いのではないでしょうか。

そういった場合に、フォーマットがある程度決まっているんだったらショートコード化しちゃって、投稿画面にも表示してくれたら万事解決!?という事で、今回は試しにコードハイライトの記述をショートコード化してみようと思います。もちろん応用次第では、アドセンスなどにも応用可能です!

コードハイライトを実現するプラグイン 「WP Code Prettify」

コードハイライトを実装するWordPressプラグインはいくつかありますが、今回はGoogleのコードハイライトJavaScriptライブラリ「Google Code Prettify」をベースにしたこちらのプラグインを使ってみます。

任意のタグを追加できるプラグイン 「AddQuicktag」

AddQuicktag は、任意のタグやショートコード、定型文などを登録し、投稿画面に表示までしてくれるという優れものプラグインです。

functions.php へコードハイライトのショートコードを追加

以下のようなカスタマイズでショートコードを作成します。
content をコードハイライトの <pre> タグで括るというショートコードです。

function shortcode_highlight_html( $atts, $content = null ) {
  return '
' . $content . '
'; } add_shortcode('codeHTML', 'shortcode_highlight_html');

AddQuicktag でショートコードを登録・設定

今回拡張したショートコードは、

[codeHTML]<h1>タイトル</h1>[/codeHTML]

というような形式でコードハイライトが効くようになります。

それでは、AddQuicktagプラグインの設定の方にも、追加したショートコードの開始・終了タグを登録していきます。
今回はついでにCSSやJS、PHP、非出力タグとして ignore も追加しましたので、そちらも合わせて登録してみます。

登録の方法はこんな感じ。簡単ですね。

投稿画面の表示を確認して実際に投稿してみる

実際に投稿画面を見て見ると、AddQuicktagプラグインで設定したショートコードがボタンとして表示されている事がわかりますね。

では実際に記事を投稿してみましょう。

表の表示はこんな感じです。
きちんとコードハイライトが効いている事が確認できました。

AddQuicktag を使うメリット

単純に上記のようなコードハイライトだけを実装するのであれば、functions.php の改修は不要で、AddQuicktagプラグインに直接、<pre>タグを登録するだけでコードハイライトの実装は可能です。
それでも全く構わないのですが、あえてなお functions.php にショートコードを追加するメリットとしては、以下のような点があげられるかと思います。

  • ショートコード改修時のメンテナンスのしやすさ
  • 開始・終了タグの形式に沿わないショートコードの追加
  • 投稿画面テキストビュー時、ソースの可読性アップ

例えばこんなショートコードの活用例も?

その他のショートコードの活用例としては以下のようなものがあるでしょうか。

  • コメントアウトの追加
  • 非出力ショートコード(ignore)の追加
  • 決まった広告フォーマットへ広告IDだけで広告を表示
  • 決まった動画フォーマットへ動画IDだけでYouTube動画を埋め込み
  • 決まった地図フォーマットへ緯度・経度だけで地図の埋め込み

いかがでしたでしょうか。
ショートコードを応用すればいろんなものに使えそうですね。

参考

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ