サポート » バグ報告と提案 » wp_checkdate()関数でのバグ

  • odmodm

    (@odmodm)


    Notice: A non well formed numeric value encountered in WPのパス\wp-includes\functions.php on line 5338

    wp_insert_postでpost_dateを指定したところ上記エラーがでるようになりました。
    上記のエラーは文字列で演算処理を行おうとした際に発生するようですが、
    該当の箇所を調べたところwp_checkdate()関数内の、$monthに数値に
    ハイフンが含まれてしまっていますのでおそらくこちらが原因かと思いますが、
    英語で説明ができないのでどなたかコア開発者にご報告いただけませんでしょうか。

    wp_insertで渡している日付は
    2018-7-17 13:48:00
    のように問題ないです。

    利用環境
    XAMP
    PHP 5.6
    WordPress 5.1

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • munyagu

    (@munyagu)

    こんにちは

    wp_checkdate 関数の定義は以下のようになっています。

    function wp_checkdate( $month, $day, $year, $source_date ) {
    	return apply_filters( 'wp_checkdate', checkdate( $month, $day, $year ), $source_date );
    }

    ※コメント略

    この関数の中ではほとんど何もやっていなくて、PHP の標準関数である wp_checkdate を呼び出しているだけです。
    checkdate 関数でエラーになるということは、これより前でおかしくなっているということです。

    ところで、wp_insert_post で渡される日付フォーマットは以下のようになっています。

    ‘post_date’ => [ Y-m-d H:i:s ] // 投稿の作成日時。

    参考)http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_insert_post

    月はmですので、前ゼロが必要です。
    wp_insert_post 関数の中で以下のように月を取得して wp_checkdate に渡していますので、前ゼロが無いと取得する位置がずれます。

    $mm = substr( $post_date, 5, 2 );

    2018-07-17 13:48:00を渡してください。

    ishitaka

    (@ishitaka)

    こんにちは

    バグではないと思います。
    post_date は Y-m-d H:i:s 形式の文字列なので、月はゼロサプレスする必要があります。

    2018-7-17 13:48:00

    2018-07-17 13:48:00

    ishitaka

    (@ishitaka)

    すみません、レスが被りましたね・・・

    odmodm

    (@odmodm)

    あぁ、すみません!
    完全に見落としておりました。

    ご指摘いただきありがとうございます。
    修正したところ直りました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「wp_checkdate()関数でのバグ」には新たに返信することはできません。