スポンサードリンク


WordPressウィジェットのアーカイブ一覧の件数変更!年別や月別に出力方法をカスタマイズする手順!

    WordPressのウィジェットで標準機能として入っている「アーカイブ」ってありますよね。

    これまでに投稿した記事を月別で一覧表示してくれるウィジェットになりますが、
    ウィジェットエリアに配置しても設定項目が少なくカスタマイズができないのが難点です。

    WordPress アーカイブウィジェット 件数

    ページリンクを構成するうえで、検索エンジンのクローラーに古い記事も参照できるように、
    アーカイブウィジェットを使っている方もいらっしゃると思いますが、
    カスタマイズするための設定がないので困ってしまいますよね。

    そこで今回は「アーカイブ」ウィジェットをカスタマイズする方法をご紹介したいと思います。

     

    アーカイブウィジェットの一覧の件数をカスタマイズする方法

    ウィジェットエリアに「アーカイブ」のウィジェットコンテンツを配置した場合、
    表示されるアーカイブ一覧の件数は記事を書いた年月分すべて出力されてしまいます。

    例えば、2014年1月から2015年9月まで記事を書いていたら、
    その月の分だけリンクが表示されてしまいので、縦に広がりウェブサイトの見栄えが悪くなってしまいます。

    対策方法としてはテーマディレクトリ内のfunctions.phpに以下のコードを貼りつけることで解決できます。

    こちらのサンプルコードでは、10件表示されるようになっています。

    widget_archives_args関数がWordPressでいうアーカイブ関連のメソッドで、
    フィルター用のhook_widget_archives_argsメソッドの引数にアーカイブ情報があります。

    このアーカイブ情報をメソッド内で書き換えてあげて、出力方法を変更できるという仕組みです。

     

    使い方ですが、ソースコードの9行目の$args[‘limit’]に表示させたい件数に書き換えます。
    書き換えたら、functions.phpに貼り付ければ完了です。

    WordPress アーカイブウィジェット カスタマイズ

    例えば、2015年の12ヶ月分の月別アーカイブがある場合、
    「最新の10件」つまり、3月~12月の10件がリンク表示されます。

     

    アーカイブウィジェットの一覧を年別表示にカスタマイズする方法

    何年も記事を書き続けている人にとっては、
    アーカイブのフォーマットを「月別」ではなく、「年別」にしたいと思うかもしれません。

    そしてなぜか標準機能で「年別」に切り替える設定項目がないんですよね。

     

    スポンサードリンク

     

    WordPress4.3までバージョンアップされているの未だに設定項目が出てこないのが不思議ですが、
    こちらも上記のソースコードの少し変更するだけで実現できてしまいます。

     

    お次は6行目を確認しましょう。
    最初にご紹介したソースコードでは「monthly」となっていましたが、
    ここを「yearly」に変更するだけで、表示書式が「年別」に切り替わってくれます。

    WordPress アーカイブウィジェット 年別

    ちなみに画像の例では2014年はひとつの記事を書かなかったことと、
    10年分のアーカイブ情報がないので、6件までしか表示されていないことを表したものです。

    MySQLの中ではアーカイブ情報として、「年:yearly」と「月:monthly」というコード体系で
    レコードが管理されているということですね。

    それぞれクエリで取得する項目を判別させているんだと思いますが、
    この判定ができるならやはり標準機能で「月別」「年別」の切り替えが実装されていないというのが疑問です。

    とりあえず簡単に「アーカイブ」ウィジェットの出力項目と書式をカスタマイズできたので良かったです。

      The following two tabs change content below.
      よっき プロフィール画像
      パソコンが大好きな青年。職業はプログラマ/SE。 フリーランスとしてウェブサイトの構築・保守の業務に従事。専門学校とパソコンスクールで講師も担当。幼少期からパソコンが大好きで、趣味がそのまま仕事に転じた。自作PCの魅力に惹かれたのは学生時代の頃。自作PC専門ブログで、お得な情報を紹介しています。

      スポンサードリンク


      コメントを残す




      CAPTCHA


      このページの先頭へ