• WordPress 2.8 以降、「サーバーが Windows かつ PHP 5.1.0 以下」での
    バグ(仕様)回避のため、投稿の日付が制限されています。
    (タイムスタンプが負の場合、強制的に現在時刻が設定されます。)

    下記のトピック、trac にあるように、wp-include/functions.php の
    該当箇所を削除することで、この制限を回避はできます。

    http://wordpress.org/support/topic/bug-with-backdated-post-before-1-january-1970-wp28

    http://core.trac.wordpress.org/ticket/10332

    できれば、コアファイルは弄りたくないのですが、
    この問題はコアファイルの修正以外でも解決できますでしょうか。

    ご教示いただければ、幸いです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    勘違いだったらごめんなさい。

    http://core.trac.wordpress.org/attachment/ticket/10332/10332.2.diff
    のことですか?

    その部分の最後

    $j = apply_filters('date_i18n', $j, $req_format, $i, $gmt);
    	return $j;
    }

    フィルタフックがあるので、フィルタフックの使い方を調べてみるといいかも

    トピック投稿者 gosunatxrea

    (@gosunatxrea)

    お世話になります。

    引用部分を含む wp-includes/functions.php function date_i18n() の
    先頭付近で、$i が変更されてしまうのでこのフィルターフックでは難しいと思うのですが、、、

    $dateformatstringの値は関数内で変更されずに$req_formatに引き継がれているので、nobitaさんのご指摘通り単純にフィルターフックで対応できるのでは?

    テーマのfunctions.phpに

    function my_date_i18n($j, $dateformatstring, $unixtimestamp = false, $gmt = false ){
     //ここはdate_i18nのコードのうち該当部分を削除して流用…
    
      //↓ここはコメントアウト
      //$j = apply_filters('date_i18n', $j, $req_format, $i, $gmt);
    }
    add_filter('date_i18n','my_date_i18n');

    という感じでいいのかな…。

    #処理の重複とコアファイル修正、どちらをより避けたいのかという選択ですね。でも「allow plugins to redo this entirely」ってありますし。

3件の返信を表示中 - 1 - 3件目 (全3件中)

トピック「コアファイルの改変について」には新たに返信することはできません。