概要
wp_resolve_post_date
フィルタは、グレゴリオ暦として有効な投稿日時を取得する際に使用されるフィルタです。このフィルタを使用することで、投稿の公開日時をカスタマイズしたり、特定のフォーマットに整形したりすることができます。
主な機能の例
- 投稿の公開日時のカスタマイズ
- タイムゾーンを考慮した日時の変換
- 日時のフォーマットを変更
- 日付の計算や比較に基づく条件分岐
- カスタム投稿タイプの日時処理
- 投稿のメタ情報を用いた日時の補完
- RSSフィードの日付情報の変更
- プラグインによる日時の取得や表示の拡張
構文
apply_filters( 'wp_resolve_post_date', $date, $post );
パラメータ
$date
(string): 投稿日時として処理される日付/時刻の値。$post
(WP_Post): 対象となる投稿オブジェクト。
戻り値
- (string): フィルタが適用された後の、有効な投稿日時。
関連する関数
使用可能なバージョン
このフィルタはWordPress 4.0以降で使用可能です。
含まれるコアファイルのパス
wp-includes/post.php
サンプルコード
1. デフォルトの投稿日時をカスタマイズ
このサンプルは、デフォルトの投稿日時を特定のフォーマットに変換します。
add_filter('wp_resolve_post_date', 'custom_format_post_date', 10, 2);
function custom_format_post_date($date, $post) {
return date('Y-m-d H:i:s', strtotime($date));
}
このコードは、投稿日時を「YYYY-MM-DD HH:MM:SS」形式に変更します。
2. タイムゾーンを考慮した日時取得
このサンプルでは、UTC日時を日本標準時に変換します。
add_filter('wp_resolve_post_date', 'convert_to_japan_timezone', 10, 2);
function convert_to_japan_timezone($date, $post) {
$datetime = new DateTime($date, new DateTimeZone('UTC'));
$datetime->setTimezone(new DateTimeZone('Asia/Tokyo'));
return $datetime->format('Y-m-d H:i:s');
}
このコードは、UTCの投稿日時を日本のタイムゾーンに変換します。
3. 投稿メタ情報を使った日時補完
このサンプルでは、投稿メタ情報から日時を取得します。
add_filter('wp_resolve_post_date', 'meta_based_post_date', 10, 2);
function meta_based_post_date($date, $post) {
$custom_date = get_post_meta($post->ID, 'custom_date', true);
return !empty($custom_date) ? $custom_date : $date;
}
このコードでは、カスタムメタフィールドの値を日時として使用します。
4. 日付の比較を基にした条件分岐
このサンプルでは、特定の日付よりも過去の投稿にのみカスタマイズを適用します。
add_filter('wp_resolve_post_date', 'conditional_post_date', 10, 2);
function conditional_post_date($date, $post) {
if (strtotime($date) < strtotime('2020-01-01')) {
return date('Y-m-d', strtotime($date));
}
return $date;
}
このコードは、2020年以前の投稿のみ日付を「YYYY-MM-DD」形式で返します。
5. RSSフィードの日付情報の変更
このコードは、RSSフィードの投稿日時をカスタマイズします。
add_filter('wp_resolve_post_date', 'rss_custom_post_date', 10, 2);
function rss_custom_post_date($date, $post) {
// RSS用のフォーマットで返す
return date('D, d M Y H:i:s O', strtotime($date));
}
このコードは、RSSフィードで使用するために投稿日時を特定のフォーマットに整形します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |
このフィルタはWordPressの特定のバージョンで非推奨または削除されていません。