閉じる

技術ブログ

自作ウィジェットの作成方法 月別リンクとカテゴリーリンクのウィジェット化

WordPressでの自作ウィジェットの作成方法 月別リンクとカテゴリーリンクのウィジェット化

様々な場面で使用する月別リンクやカテゴリーリンクは、できればウィジェット化(部品化)して、管理画面のみから操作したいものです。

ウィジェットとウィジェットセット

ウィジェットは部品で、ウィジェットセットはウィジェットの集合体です。

ウィジェットセットはサイドバーやフッターなどに表示することができます。

なぜウィジェットを使用するのか

自作関数を作成してサイドバーなどに表示すればよいのですが、ページの多いサイトの場合、何度も同じ部品を表示することがあり、管理が煩雑になることがあります。

管理が煩雑になるのを防ぐために、WordPressがあらかじめ用意した仕組みがウィジェットです。

これにより、一度登録したウィジェットを削除する場合など、一度の操作で設定できます。何より管理画面だけから操作ができ、一度設定すればファイルを直接編集する必要がありません。

ウィジェットエリアの作成方法とサイドバーへの表示方法

以下のようにwidgets_initアクションフックに自作関数をフックすることで、register_sidebar関数によりウィジェットエリアが登録できます。

以下をfunction.phpに記述いただくことで、管理画面>外観>ウィジェットでウィジェットエリアを使用できます。

以下をsidebar.phpなどに記述いただくことで、ウィジェットエリアを表示できます。

自作ウィジェットの作成方法

以下は自作ウィジェットの作成方法の基本構造です。

月別アーカイブリンクの自作ウィジェット化

以下は月別アーカイブリンクの自作ウィジェット化の例です。

途中に出てくる$jnm_infoはpressx.jp独自のグローバル変数です。コンテキストに応じた投稿タイプを自動取得しています。

pressx.jpを利用しない方は$jnm_info[‘post-type’][‘slug’]を独自で取得してください。

カテゴリーアーカイブリンクの自作ウィジェット化

以下はカテゴリーアーカイブリンクの自作ウィジェット化の例です。

途中に出てくる$jnm_infoはpressx.jp独自のグローバル変数です。コンテキストに応じた投稿タイプを自動取得しています。

pressx.jpを利用しない方は$jnm_info[‘taxonomy’][‘slug’]を独自で取得してください。

カテゴリーアーカイブリンク自作ウィジェットで個別に投稿タイプを指定したい場合

以下はカテゴリーアーカイブリンクの自作ウィジェットで個別に投稿タイプを指定したい場合の例です。

参考記事