投稿タイプや固定ページを指定してHTMLを挿入できるウィジェット

WordPressのデフォルトのウィジェットに任意のテキストやHTMLを挿入できる「テキスト」というウィジェットがあり、サイドバーなどのウィジェットエリアに手軽に広告バナーなどのHTMLコンテンツを挿入したい時に重宝する(下図参照)。
enter image description here

ただ、このウィジェット、そのままではコンテンツ内のショートコードが有効にならなかったり1、タイトルを表示しなくない場合はタイトル蘭を空にしないといけないため、管理パネルでの保守性が悪かったりと今ひとつ使い勝手が良くない。

そこで、ウィジェット管理用のタイトル名とフロントエンド側に表示されるタイトル名を別々に設定でき、コンテンツ内にショートコードも使え、さらにウィジェットを表示する固定ページや投稿タイプ(カスタム投稿タイプにも対応)を指定できるテキストウィジェットを作ってみた(下図参照)2
enter image description here

例えば、広告バナーなどのコンテンツで、投稿ページには表示したいけど、特定の固定ページには表示したくないなど、ウィジェットを表示するページを限定したい時などに使えるのではないだろうか。

利用方法としては、利用しているWordPressテーマのfunctions.phpに下記のウィジェットクラスを追加する。

何気にけっこうなコード量があるので、上記のコードのみを含んだwidgets.phpなどをテーマディレクトリ内に置いて、functions.phpからは下記のようにインクルードだけするという方式にするとfunctions.phpの可読性や保守性が向上して良いかもしれない。


  1. テーマのfunction.phpなどにadd_filter('widget_text', 'do_shortcode');と記述することで利用できるようになる。 
  2. 掲載画像は後述のスクリプトを組み込んだ後に、テーマ側の言語ファイルで日本語化したもの。さらに各入力フォームにはplaceholderも追加したサンプルです。 

Leave a Reply

Your email address will not be published.