ワードプレスのis_date関数の使用方法・解説

概要

is_date 関数は、WordPress のテンプレートタグの一つで、現在のクエリが日付アーカイブページであるかどうかを判定する際に使用されます。具体的には、ブログのアーカイブとして日付ごとに分類されたエントリーリストが表示されている時に有効です。以下のような機能を実装する際に利便性があります。

  1. 日付別アーカイブページのデザイン調整
  2. 日付に関連する情報の表示
  3. 特定の日付アーカイブ時のカスタムメッセージ表示
  4. 過去の日付をベースにした投稿一覧表示
  5. フィルタリングによるコンテンツの絞り込み
  6. クエリの条件による異なる表示処理
  7. 日付に基づくサイドバーやウィジェットの制御
  8. SEO対策としてのメタタグやページタイトルの変更

構文

is_date();

パラメータ

この関数にはパラメータはありません。

戻り値

  • true:現在のクエリが日付アーカイブである場合
  • false:それ以外の場合

関連する関数

使用可能バージョン

is_date は、WordPress 2.0 以降で使用できます。

WordPress コアファイルのパス

is_date 関数は、wp-includes/query.php ファイルに含まれています。

サンプルコード

サンプル1: 日付アーカイブページのカスタムメッセージ表示

if ( is_date() ) {
    echo '<h1>' . get_the_date() . 'のアーカイブ</h1>';
}

このコードは、日付アーカイブページで現在の日付をタイトルとして表示します。

サンプル2: 日付アーカイブ用の特定なスタイル適用

if ( is_date() ) {
    echo '<div class="date-archive">';
    // アーカイブコンテンツを表示
    echo '</div>';
}

このコードは、日付アーカイブページに特定のスタイルを適用します。

サンプル3: 日付アーカイブにおける過去の投稿リスト表示

if ( is_date() ) {
    $args = array(
        'date_query' => array(
            array(
                'year' => get_query_var('year'),
                'month' => get_query_var('monthnum'),
                'day' => get_query_var('day'),
            ),
        ),
    );
    $query = new WP_Query( $args );
}

このコードは、特定の日付に関連する投稿を取得するためのクエリを作成します。

サンプル4: 日付アーカイブのナビゲーション表示

if ( is_date() ) {
    echo get_previous_posts_link('前のアーカイブ');
    echo get_next_posts_link('次のアーカイブ');
}

このコードは、日付アーカイブページに前後のアーカイブへのリンクを表示します。

サンプル5: 日付に基づくフィルタリング機能の実装

if ( is_date() ) {
    add_filter('pre_get_posts', function ($query) {
        if ($query->is_main_query() && $query->is_date()) {
            // 特定の条件で投稿をフィルタリング
        }
    });
}

このコードは、日付アーカイブページのメインクエリにカスタムフィルタを適用します。

この関数のアクションでの使用可能性

アクション 使用可能
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

追加情報

特定のワードプレスバージョンで非推奨または削除された情報はありません。

この関数について質問する


上の計算式の答えを入力してください