2014年07月05日(Sat)

パンくずリストをプラグインを使わずに作る:日付編

パンくずリストをプラグインを使わずに作る:日付編

テストとして日付用のパンくずリストを作ってみました。
2ページ目以降は、ページ数も表示される仕様です。

パーマリンクがディフォルトだと年月日が取得できない!

原因は分かりませんが、パーマリンクがデフォルトになっている状態で「get_query_var()」を使用しても、年月日が取得できず0年0月0日のようになってしまう事に気づきました。 現段階で、対処法としてはパーマリンクでディフォルト以外を選択する方法しか分かりません…

パンくずリストの表示

コードとCSSは以下の通りです。

CODE

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//日付のアーカイブが表示されているかチェック
if(is_date()){
    echo '<ul class="breadcrumb">';
    echo '<li><a href="'.home_url().'">HOME</a></li>';
    //日別のアーカイブページが表示されているかチェック
    if(is_day()){
        echo '<li class="list"><a href="'.get_year_link(get_query_var('year')).'">'.get_query_var('year').'年</a></li>';
        echo '<li class="list"><a href="'.get_month_link(get_query_var('year'), get_query_var('monthnum')).'">'.get_query_var('monthnum').'月</a></li>';
        if($paged = get_query_var('paged')){
            echo '<li class="list"><a href="'.get_day_link(get_query_var('year'), get_query_var('monthnum'), get_query_var('day')).'">'.get_query_var('day').'日</a></li>';
            echo '<li class="list"><strong>'.$paged.'ページ目</strong></li>';
        }else{
            echo '<li class="list"><strong>'.get_query_var('day').'日</strong></li>';
        }
    //月別のアーカイブページが表示されているかチェック
    }else if(is_month()){
        echo '<li class="list"><a href="'.get_year_link(get_query_var('year')).'">'.get_query_var('year').'年</a></li>';
        if($paged = get_query_var('paged')){
            echo '<li class="list"><a href="'.get_month_link(get_query_var('year'), get_query_var('monthnum')).'">'.get_query_var('monthnum').'月</a></li>';
            echo '<li class="list"><strong>'.$paged.'ページ目</strong></li>';
        }else{
            echo '<li class="list"><strong>'.get_query_var('monthnum').'月</strong></li>';
        }
    //年別のアーカイブページが表示されているかチェック
    }else if(is_year()){
        if($paged = get_query_var('paged')){
            echo '<li class="list"><a href="'.get_year_link(get_query_var('year')).'">'.get_query_var('year').'年</a></li>';
            echo '<li class="list"><strong>'.$paged.'ページ目</strong></li>';
        }else{
            echo '<li class="list"><strong>'.get_query_var('year').'年</strong></li>';
        }
    }
    echo '</ul>';
}

CSS

1
2
3
.breadcrumb{ list-style-type:none; overflow:hidden; }
.breadcrumb li{ float:left; }
.breadcrumb .list:before{ content:">"; margin:0 5px; }

使用した関数

is_date()日付別のアーカイブページが表示されているかチェック
is_day()日別のアーカイブページが表示されているかチェック
is_month()月別のアーカイブページが表示されているかチェック
is_year()年別のアーカイブページが表示されているかチェック
get_day_link()特定の日別アーカイブページへのURLをPHPの値として返す
get_month_link()特定の月別アーカイブページへのURLをPHPの値として返す
get_year_link()特定の年別アーカイブページへのURLをPHPの値として返す
get_query_var()投稿検索に関連する変数の値を取得

【更新履歴】

  • 2014年07月11日 パーマリンクがディフォルトだと年月日が取得できない!を追加

【参考Webサイト】

コメント(0件)

パンくずリストをプラグインを使わずに作る:日付編に対するご意見、ご感想、情報提供など皆様からのコメントをお待ちしております。 お気軽にコメントしてください。

コメントフォーム

【ソーシャルボタン】


TOP