web-dev-qa-db-ja.com

wp_get_archives() - 今月のCSSセレクタを取得する

Wp_list_categoriesを呼び出すときと同じように、wp_get_archives関数で現在の月を取得するためのクラスを取得する方法を探しています(現在のカテゴリには ".current-cat"セレクタがあります)。 wp_list_pagesを呼び出すと、 '.current_page_item'セレクタがあります。

2
Fredy31

この機能はJoshua Abenazerの助けを借りて作成されました。ありがとうございます。基本的に、が月別アーカイブの場合は、現在の月を監視して取得し、liにクラスを追加します。うまくいった。

function wpse_62509_current_month_selector( $link_html ) {
    if (is_month()){
        $current_month = get_the_date("F Y");
        if ( preg_match('/'.$current_month.'/i', $link_html ) )
            $link_html = preg_replace('/<li>/i', '<li class="current-month">', $link_html );
    }
    return $link_html;
}

add_filter( 'get_archives_link', 'wpse_62509_current_month_selector' );
3
Fredy31

以下の関数をあなたのfunctions.phpに入れてください

function wpse_62509_current_month_selector( $link_html ) {
    $current_month = date("F Y");
    if ( preg_match('/'.$current_month.'/i', $link_html ) )
        $link_html = preg_replace('/<li>/i', '<li class="current-month">', $link_html );
    return $link_html;
}

そしてwp_get_archives()を呼び出す直前に次の行を追加してください

add_filter( 'get_archives_link', 'wpse_62509_current_month_selector' );

他のwp_get_archives()wp_get_archives()の関数呼び出しと混同しないように、get_archives_link()を呼び出した後にフィルタを削除することもできます。

remove_filter( 'get_archives_link', 'wpse_62509_current_month_selector' );
3
Joshua Abenazer