サイトアイコン WEB帳

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

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

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

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

パンくずリストの表示

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

CODE

//日付のアーカイブが表示されているかチェック
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

.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() 投稿検索に関連する変数の値を取得

【更新履歴】

【参考Webサイト】

モバイルバージョンを終了