Внешний интерфейс добавления текущей даты не работает

Я использую функцию acf_form() для добавления/обновления сообщений из внешнего интерфейса. Все работает нормально, кроме даты публикации. Почему-то он публикует очень старую дату (1970/01/01). Вместо этого я хотел опубликовать текущую дату. Вот мой код:

    $current_datetime = date('Y-m-d H:i:s');
    acf_form_head();
    acf_form(array(
        'post_id'       => 'new_post',
        'post_title'    => true,
        'post_content'  => true,
        'submit_value'  => __("Send", 'acf'),
        'updated_message' => __("Suksess!", 'acf'),
        'new_post'      => array(
            'post_type'     => 'nyhet',
            'post_status'   => 'publish',
            'post_author'   => get_current_user_id(),
            'post_category' => '',
            'post_modified' => $current_datetime,
            'post_modified_gmt' => $current_datetime,
        ),
        'fields'        => array('ingress', 'publisere_kun_pa_lokallagssiden', 'featured_image'),
        'html_submit_button' => '<input type="submit" class="button box-button green save-content" value="%s" />',
    ));

Я знаю, что мне не нужно устанавливать значения «post_modified» и «post_modified_gmt», если они относятся к текущей дате. Я пробовал без этих 2, затем попытался вручную установить текущую дату и время. Но он всегда вставлял эту странную старую дату. У меня такая же проблема с обновлением поста.


person Imrul.H    schedule 13.09.2018    source источник


Ответы (2)


WordPress имеет ряд функций даты/времени

https://codex.wordpress.org/Formatting_Date_and_Time

вам нужно это:

acf_form_head();
acf_form(array(
    'post_id'       => 'new_post',
    'post_title'    => true,
    'post_content'  => true,
    'submit_value'  => __("Send", 'acf'),
    'updated_message' => __("Suksess!", 'acf'),
    'new_post'      => array(
        'post_type'     => 'nyhet',
        'post_status'   => 'publish',
        'post_author'   => get_current_user_id(),
        'post_category' => '',
        'post_modified' => current_time( 'mysql' ),
        'post_modified_gmt' => current_time( 'mysql' ),
    ),
    'fields'        => array('ingress', 'publisere_kun_pa_lokallagssiden', 'featured_image'),
    'html_submit_button' => '<input type="submit" class="button box-button green save-content" value="%s" />',
));

для получения дополнительной информации :

https://developer.wordpress.org/reference/functions/current_time/

person yogesh chatrola    schedule 13.09.2018
comment
Это тоже не работает. Все еще публикую дату 1970. - person Imrul.H; 13.09.2018
comment
Вы также можете использовать current_time('timestamp') - person yogesh chatrola; 13.09.2018

Похоже, что 1970/01/01 - ваша системная дата. Проверьте свою конфигурацию.

http://php.net/manual/en/function.date.php

Функция date возвращает строку, отформатированную в соответствии с заданной строкой формата, с заданной целочисленной отметкой времени или текущим системным временем, если отметка времени не указана. Другими словами, метка времени не является обязательной и по умолчанию равна значению time().

person Marat Badykov    schedule 13.09.2018
comment
Нет, это не моя системная дата, я проверил. То же самое происходит и на живом сервере. - person Imrul.H; 13.09.2018