WordPress ウィジェットのタイトル表示を抑制する

WordPress テーマ作製案件であるウィジットはタイトルの表示を行わないという要求仕様があったので、ウィジェットのタイトル表示を抑制する方法を調べてみた。

WordPress のウィジェットタイトルをフィルタリングできるか、プラグイン API/フィルターフック一覧 で関係しそうなフィルター名を調べてみたところ、widget_title というフィルター名を見つけた。

そこで、以下のような基本的な構成ができた。

1
2
3
add_filter('widget_title', function($widget_string) {
return $widget_title;
});

次にフィルターの実装について考える。

  1. タイトルを表示しないウィジェットがある
  2. しかし、その他のウィジェットではタイトルを表示する

2.は先の構成で実現できているので、なんらかの条件とのときにウィジェットのタイトルを表示しないようにすればいい。

1
2
3
4
5
6
7
add_filter('widget_title', function($widget_string) {
if ( substr ( $widget_title, 0, 1 ) === '!' ) {
return '';
} else {
return $widget_title;
}
});

タイトルの頭に”!”を指定したウィジェットはウィジェットのタイトルを表示しないようにできた。