私はサイトマッププラグインを使用しています。これは非常に複雑な方法でGMTへの投稿のための<lastmod>
のタイムゾーン(つまり最終更新時刻)を設定します。
一時的に、プラグイン開発者がそれを修正するまで、私はカスタムタイムゾーン をプラグインに強制する必要があります 。私が見つけた簡単で直接的な方法は、サイトマップの出力を担当するファイルの最初の<?php
の直後にdate_default_timezone_set( 'America/New_York');
のようなものを追加することです。
それはうまくいきます、そしてそれはサイトの他の部分に表示されるタイムスタンプに影響を与えるようには見えません。それで、私はこれで行くことができますか?それとももっと良い解決策がありますか?
http://codex.wordpress.org/Function_Reference/get_gmt_from_date
get_the_date
またはthe_date
のすべてのインスタンスをecho get_gmt_from_date(get_the_date('Y-m-d H:i:s'))
に置き換えます。これは簡単な修正ではありません。サイトマップを修正する方法です。
編集:
WordPress SEOはMySQLから生の日付をmysql2date
と呼ばれるWP関数を通して実行します。そしてそれはdate_i18n
を呼び出します。 date_i18n
はたまたま日付を変更するために結び付けることができる便利なフィルタを持っています:
<?php
add_filter('date_i18n', 'wpse57195_filter_date', 10, 4);
/**
* Changes the date on WordPress SEO's sitemaps
*
* @return string The Date
*/
function wpse57195_filter_date($date, $format, $timestamp, $gmt)
{
// if this isn't a sitemap page, bail
if(!get_query_var('sitemap'))
return $date;
// W3C Time format with -05:00 for central time
// NOTE: this doesn't account for daylight saving time
$f = 'Y-m-d\TH:i:s-05:00';
return $gmt ? gmdate($f, $timestamp) : date($f, $timestamp);
}
フック関数では、サイトマップクエリ変数を確認し、必要に応じて時間を変更できます。 sitemap仕様 を維持するには、タイムゾーンの+/-フィールドを含む W3C日付形式 を使用する必要があります。 -05:00は、中央夏時間の番号です。上記の をプラグイン にラップして、サイトマップが修正されるまで有効にすることができます。
現在、組み込み関数current_time()
は、関数date_default_timezone_set()
が決して使用されないことを期待しています。
current_time()
のコードを調べると、この関数はPHP組み込みdate()
function(タイムゾーンの影響を受ける)を使用して結果をフォーマットするため、これを確認しました。実際、Wordpressは常にタイムゾーンをUTCにリセットしているようです(きれいなWordPressの設定でwp-config.php
の上と下に配置されたecho date_default_timezone_get()
がこれを証明します)。
https://core.trac.wordpress.org/ticket/38940 を参照してください。
No.(それが終わったらすぐに元に戻すこともできますが、間違いが起こりやすいのです。)
また、wp-config.php
で date_default_timezone_set ()をオーバーライドしないでください。 wp-settings.php
はこれをUTC
に設定します。変更してはいけません。
たとえば、ヨーロッパ/ロンドンに設定すると(夏はGMTより1時間早くなります)、GMTは本来の値よりも1時間早くなります - /wp-admin/options-general.php
で確認できます。
基本的に、これはシステムタイムゾーンの値/etc/timezone
とPHPのdate.timezone
iniの値がWordPressによって無視されることを意味します。
私見、それがUTC以外の値に設定されている場合、WordPressコアにある種の警告があるべきですが、そうではないので、注意してください。