この記事は最後に更新してから1年以上経過しています。
説明
ウィジェットベースでテーマを構築していてカレンダーを表示してみた。標準では、前月や次月のリンク先はそれぞれの月のアーカイブページとなっているのだが、記事を探すだけであればカレンダー部分だけを更新するほうが便利なのではと考え、そのアイデアを実装してみた。実装は「カレンダーウィジェットのリンク部分の変更」、「リンククリック時のJavaScript関数の追加」、「更新するカレンダー部分のレスポンス対応」の3パートに分かれる。 まずはカレンダーウィジェットの前月や次月のリンクをJavaScriptで対応する部分。これはwidgets_initアクションで行うのがいいと思い、functions.phpに次のように追加。
add_action( 'widgets_init', 'mytheme_widgets_init' );
function mytheme_widgets_init() {
add_filter( 'get_calendar', 'mytheme_get_calendar' );
}
function mytheme_get_calendar( $out ) {
return str_replace( ' id="next"><a ', ' id="next"><a onclick="update_calendar(this.href); return false;" ',
str_replace( ' id="prev"><a ', ' id="prev"><a onclick="update_calendar(this.href); return false;" ', $out ) );
}function update_calendar( dateurl ) {
$.ajax( {
url: dateurl+'?ajax',
dataType: 'html',
success: function( data ) {
$( '#calendar_wrap' ).html( data );
}
} );
}if ( is_month() && array_key_exists( 'ajax', $_GET ) ) {
get_calendar();
exit;
}最終更新 : 2011年08月22日 14:09
関連
お勧め
wp_add_post_tags(2012年7月5日 更新)
mixed wp_add_post_tags( [ int $post_id = 0 [ , string $tags = '' ] ] )
投稿情報に投稿タグを追加する。
get_tags(2018年5月27日 更新)
array get_tags( [ mixed $args = '' ] )
条件を指定してタグ情報を検索し、マッチしたすべてのタグ情報を取得する。
wp_array_slice_assoc(2022年2月2日 更新)
array wp_array_slice_assoc( array $array, array $keys )
キーを指定して配列の一部を抽出する。
get_post_permalink(2022年11月6日 更新)
string | false get_post_permalink( [ int | WP_Post $id$post = 0 [ , bool $leavename = false [ , bool $sample = false ] ] ] )
カスタム投稿タイプの投稿ページのパーマリンクを取得する。
remove_query_arg(2024年3月21日 更新)
string remove_query_arg( string | string[] $key [ , bool | string $query = false ] )
クエリーURIからパラメータ(キー名=値)を削除する。