サポート » 使い方全般 » 日付アーカイブ(月別の場合)のカレント表示

  • 解決済 kasaata

    (@kasaata)


    初心者なんですが、質問させて下さい。よろしくお願いします。

    「wp list categories」を使うと、現在の該当のカテゴリーにいる場合、リストに「current-cat」クラスが付加されますが、同じように
    「wp_get_archives(‘type=monthly’)」で、該当の月にいる場合、カレント表示(ハイライト)したいのですがあと少しなんですが、よくわからないもので・・・あせ

    http://ja.forums.wordpress.org/topic/3035?replies=9
    こちらを参考にfunction.phpで以下のように書き換えたのですが、

    function my_archives_link($link_html){
      if(preg_match_all('@<a>2012年([0-9]+)月</a>@i', $link_html, $matches))
        if(get_query_var('monthnum') == $matches[1][0])
          $link_html = preg_replace('@<li>@i', '<li class="current">', $link_html);
    
      return $link_html;
    }
    add_filter('get_archives_link', 'my_archives_link');

    これだと、2012年度はいいのですがそれ以前やそれ以降になると当然でません・・
    現状のテーマでは以下のようにアーカイブが出力されます。

    <li class="current"><a href='ドメイン/2012/01' title='2012年1月'>2012年1月</a></li>
    <li><a href='ドメイン/2011/12' title='2011年12月'>2011年12月</a></li>

    お知恵を拝借できないでしょうか。

    よろしくお願い申し上げます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • テーマフォルダの functions.php に以下をコピペで OK です◎

    add_filter( 'get_archives_link', 'my_archives_link' );
    function my_archives_link( $link_html ) {
      if (preg_match_all( '@' . preg_quote( $_SERVER['REQUEST_URI'] ) . '@', $link_html, $matches ) )
          $link_html = str_replace( '<li>', '<li class="current">', $link_html );
    
      return $link_html;
    }

    トピック投稿者 kasaata

    (@kasaata)

    kz 様

    ご返答誠にありがとうございます。

    完璧に出来ました!! ありがとうございました!!
    ほんと助かりました!
    感謝です<m(__)m>

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「日付アーカイブ(月別の場合)のカレント表示」には新たに返信することはできません。