Blog

WordPress ウィジェットのカレンダーを任意の場所に追加

今まで、WordPressはコーポレートサイトを中心に作ってきましたが、最近普通のブログをWordPressで作る機会がありました。
原点に返った気分でした。

WordPressはもともとBlogを作るためのものだっただけあって、Blogの機能がデフォルトでたくさん用意されています。
その一つがウィジェットです。

コーポレートサイトを作るときはウィジェットを使うことはほとんどなかったので存在を忘れかけていましたが、
カレンダーを追加したいのに良いプラグインが見つからず、「もうウィジェットのやつでいいやん」と思いついて(思い出して)使ったので、その背景と経過を書いておこうと思います。

イベントや営業日用「以外」のカレンダープラグインがヒットしない

ブログを投稿した日にリンクがつくだけのシンプルなカレンダーを探すにあたって、
「Wordpress」「カレンダー」と検索すると、イベントカレンダーや営業日設定カレンダーばかりがヒットします。

そうではない…ブログ用の普通のカレンダーがほしい…
と思っていろいろ探しましたが、これならいけそうと思ったプラグインが機能しなかったり、意外と見つかりませんでした。

そこで、ウィジェットのものを使おうと決めました。

ウィジェットエリアを作る

register_sidebar()で作ることができます。
パラメータに、作りたいウィジェットの情報を追加します。

パラメータについては公式を参照

register_sidebar(array(
  'name' => 'カレンダー' ,
  'id' => 'widget_calendar' ,
  'description' => 'カレンダー',
  'before_widget' => '<div id="%1$s" class="widget %2$s">',
  'after_widget' => '</div>',
  'before_title' => '<h2>',
  'after_title' => '</h2>'
));

「%1$s」「%2$s」で一意のidやクラスをつけることができます。

ウィジェットエリアにウィジェットを追加

「外観」→「ウィジェット」から、先ほど作ったウィジェットエリアにカレンダーを追加します。

任意の場所に表示する

dynamic_sidebar()で表示できます。

<?php dynamic_sidebar(’nameかidの文字列');?>

公式リファレンスには、
「この関数はアクティブなウィジェットコールバック関数を順に呼び出し、サイドバーに表示します。」
と書いてあるので、サイドバーでしか使えないのかと一瞬思いますが、そうでなくても使えました。
wordpressバージョン2の頃からあるので、公式リファレンスも更新がされてないのかもしれないです。

最初は、ウィジェットをショートコードで表示する方法を探したりしていましたが、そんな必要全然ありませんでした。

スタイルは自分で

オリジナルテーマなので、スタイルは設定されておらず、適当につけました。
むしろない方がやりやすかったです。

まとめ

あらためてウィジェットを眺めると、今まで手作業でループで作っていた月別アーカイブやカテゴリのドロップダウン、検索などもあり、
これからちょっと使ってみようかなあ…と思いました。

おすすめの記事 recommend blog

新着 new blog

github