2017-01-27 3 views
0

Я хочу изменить дату публикации, когда опубликую сообщение. я написал в своем плагинеКак изменить дату публикации в WordPress

add_action('publish_post', 'myPlugin_published'); 

function myPlugin_published() 
{ 
    $postdate = '2010-02-23 18:57:33';/*For example*/ 

    $new_post = array(
     'post_date' => $postdate 
    ); 

    wp_insert_post($new_post); 
} 

Проблема заключается в том, что дата не изменяется.

Как изменить дату публикации в WordPress?

+0

откуда дата наступит? –

+0

add_action ('publish_post', 'myPlugin_published', 10,1); и затем 'function myPlugin_published ($ date)' this '$ date' с датой публикации –

ответ

1

Спасибо всем за помощь

function my_function($post_id) 
     { 
      $postdate = '2010-02-23 18:57:33'; 

      $my_args = array(
       'ID' => $post_id, 
       'post_date' => $postdate 
      ); 

      if (! wp_is_post_revision($post_id)){ 

        // unhook this function so it doesn't loop infinitely 
        remove_action('save_post', 'my_function'); 

        // update the post, which calls save_post again 
        wp_update_post($my_args); 

        // re-hook this function 
        add_action('save_post', 'my_function'); 
      } 
     } 
     add_action('save_post', 'my_function'); 
0

На экране редактора сообщений в мета-окне «Опубликовать» вы увидите возможность опубликовать сообщение сразу. Рядом с ним есть ссылка на редактирование. Нажав на ссылку редактирования, вы увидите настройки времени и даты сообщения.

enter image description here

Использование настроек даты и времени, вы можете выбрать любую дату и время в прошлом, так и в будущем. Выбор будущей даты и времени позволит вам запланировать публикацию публикации в это время. enter image description here

С другой стороны, при выборе даты и времени в прошлом будет обновлена ​​дата и изменится позиция сообщения на страницах архива вашего сайта. Например, если вы измените месяц сообщения с июня по январь, он появится на ежемесячной странице архива в январе, даже если вы только что опубликовали этот пост. Сообщение также будет отображаться соответственно на странице всех списков сообщений в области администратора.

enter image description here

Это особенно полезно, когда вы хотите опубликовать статью, но не хотите, чтобы появиться на главной странице вашего сайта. Вы можете просто вернуть дату до даты, предшествующей последней записи на первой странице вашего сайта.

0

В это время сообщение уже сохранено. Используйте wp_update_post() вместо:

add_action('publish_post', 'myPlugin_published', 10, 2); 

function myPlugin_published($ID, $post) 
{ 
    $postdate = '2010-02-23 18:57:33';/*For example*/ 

    $update_post = array(
     'ID' => $ID, 
     'post_date' => $postdate 
    ); 

    wp_update_post($update_post); 
} 
+0

Неустранимая ошибка: разрешенный размер памяти 268435456 байт исчерпан (пытался выделить 24 байта) в W: \ domains \ localhost \ website1 \ wp-includes \ wp-db.php в строке 2565 –

Смежные вопросы