WordPressでプラグインやcssを使わずにウィジェットのタイトルを非表示にする:メモ

悩み
悩み

WordPressでは、ウィジェットにタイトルを入力すると強制的に表示されてしまいます。

空にしたりcssで消す方法が一般的ではありますが、空にせず、かつ、cssを使わない方法をみつけましたのでメモとして。

バッドノウハウかもしれませんが、割と使いやすそうではあるのでメモに残す次第です。

実現したいこと

実現したいことは以下のとおり。

  • ウィジェットのタイトルを入力
  • ウィジェットのタイトルを出力しない
  • ウィジェットのタイトルを空にしたり、cssで消す以外の方法
  • プラグインは使わない

管理上ウィジェットのタイトルは見えていた方が良いですよね。

プラグインの「Remove Widget Titles」で実現可能なようですが、今回のコードは簡単なのでこちらでよいかなと。

コード

以下の記述をfunctions.phpに記述します。
なお、執筆時点ではWP4.4.1です。


add_filter( 'widget_title', 'my_widget_title' );
function my_widget_title( $title ) {
if( mb_strpos($title, '!') !== false){
  return '';
 } else {
  return $title;
 }
}

あとは、ウィジェットのタイトルに半角の「!」を入力すれば出力されなくなります。

当然、タイトルを出力する必要があり、かつ「!」を使いたい場合には都合が悪いため、その場合は別の文字に変える必要があります。
この「!」は3行目で指定していますので、ここを書き換えれば他の文字でも動作します。

なお、「タイトル欄の先頭に特定の文字を入力してフラグにする」という指定の仕方は「Remove Widget Titles」を参考にしました。
プラグインの中身は見ていませんが、任意かつ簡易に切替ができる仕組みとしては「なるほど」と感心した次第です。
こういう指定方法は他でも使えそうなので、覚えておきたいと思います。

今回参考にしたのは以下のページです。

結び

珍しく汎用的なものができた気もしますが、cssで消す方が簡単ではあるので、この辺りは目的や考え方によるかもしれません。

0人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄