はじめに
WordPressの標準機能である「カレンダー」ウィジェットは、日付をクリックするまでその日に何の投稿があるのか分かりません。
過去の記事を振り返りたいユーザーにとって、いちいちクリックしてページ遷移するのは手間になります。
そこで、カレンダーの日付リンクに title属性を追加することで、マウスオーバー時に投稿タイトルをツールチップとして表示します。
なお、該当日に複数の投稿がある場合は、その日に公開された最新の投稿のタイトルを表示します。
この記事では、この方法について説明します。
完成イメージ
実装手順
以下のコードをfunctions.phpに追加します。
add_filter('get_calendar', function ($calendar) {
// 日付リンクから年月日を取得
return preg_replace_callback(
'#<a (href="[^"]*/(\d{4})/(\d{1,2})/(\d{1,2})/")#',
function ($m) {
// 該当日の最新の公開済み投稿を取得
$posts = get_posts([
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 1,
'date_query' => [[
'year' => (int) $m[2],
'month' => (int) $m[3],
'day' => (int) $m[4],
]],
]);
// 投稿タイトルをtitle属性として設定
return '<a title="' . esc_attr(get_the_title($posts[0])) . '" ' . $m[1];
},
$calendar
);
});
さいごに
今回紹介した方法を使えば、標準の「カレンダー」ウィジェットをより親切で高機能なものに進化させることができます。
訪問者が迷うことなく目的の過去記事にたどり着けるよう、ぜひ導入を検討してみてください。
