サポート » 使い方全般 » アーカイブリストのタグについて

  • 解決済 yuru

    (@yuru)


    アーカイブリストにマークをつけたくて、正規表現で置換してみたのですが、全く無視されます。書き方が間違っているのでしょうか?

    // アーカイブ表記に「年」を追加
    function my_archives_link($html){
    $html = preg_replace('/([0-9]+?)<\/a>/', '$1年</a>', $html);
    if(preg_match('/title=[\'\"][0-9]+?[\'\"]/', $html))
    $html = preg_replace('/(title=[\'\"][0-9]+?)([\'\"])/', '$1年$2', $html);
    
    $regex = "/<a href='([^']+)' title='[^']+'>[^<]/";
    $html = preg_replace( $regex, '<i class="fa fa-angle-right pr5"></i>$1', $html);
    
    return $html;
    }
    add_filter('get_archives_link', 'my_archives_link', 10);

    <a href="~"><i class="fa fa-angle-right pr5"></i>2015年2月</a>にしたいのです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • まず年を追加するという件ですが、設定-一般の日付のフォーマットを年月日のものにしたら追加されませんか?

    iタグを追加するのはwp_get_archivesのbeforeに追加したら良いのではないでしょうか。

    <?php
    $args = array(
    	'type'            => 'monthly',
    	'limit'           => '',
    	'format'          => 'html',
    	'before'          => '<i class="fa fa-angle-right pr5"></i>',
    	'after'           => '',
    	'show_post_count' => false,
    	'echo'            => 1,
    	'order'           => 'DESC'
    );
    wp_get_archives( $args );
    ?>

    http://wpdocs.sourceforge.jp/テンプレートタグ/wp_get_archives

    トピック投稿者 yuru

    (@yuru)

    ikaringさま

    beforeに追加すると、<a href="">より前に<i>タグがついてしまいます。
    <a href="">の直後に付加したいのですが、無理でしょうか?

    ああ、なるほどです。
    正規表現あまり詳しくないので、もっといい書き方あるかもですけど、こんな感じでどうでしょうか。
    wp_get_archivesのformatはhtmlで日付フォーマットは年月日になっている前提です。

    function add_icon_to_archives( $link_html ) {
        $link_html = preg_replace( '/\>(\d{4}年\d{1,2}月)\</', '><i class="fa fa-angle-right pr5"></i>$1<', $link_html );
        return $link_html;
    }
    add_filter( 'get_archives_link', 'add_icon_to_archives' );
    トピック投稿者 yuru

    (@yuru)

    ikaringさま

    できました!!
    ありがとうございます!!
    正規表現が全くわからず、困っていました。本当に助かりました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「アーカイブリストのタグについて」には新たに返信することはできません。