2017-04-15 66 views
0

我需要在WordPress中更改我所有博客帖子的最後修改日期和時間。到目前爲止,我有....用WP查詢修改WordPress發佈的last_modified日期和時間

add_action('wp', 'asd'); 
function asd() 
{ 
    $post_list = get_posts(array(
    'post_per_page' => '-1' 
    )); 

    foreach ($post_list as $post) { 
    // $posts[] += $post->ID; 

    $postID = $post->ID; 
    $datetime = date('Y-m-d H:i:s', current_time('timestamp', 0)); 
    echo $postID . ' ||| ' . $datetime . '<br>'; 

global $wpdb; 
$wpdb->query("UPDATE `$wpdb->posts` SET `post_modified` = '" . $datetime . "' WHERE ID = " . $postID); 
} 
} 

我沒有得到任何錯誤或任何。我正在使用「回聲」進行調試。我有兩個問題。

  1. 我有6個職位,我只得到5
  2. 似乎沒有更新數據庫中發生的事情,最後修改後的字段

任何幫助,將不勝感激。

回答

1

您使用此代碼。(它粘貼在你的主題function.php)

add_action('init','change_mypost_date'); 
function change_mypost_date(){ 
    $args = array(
     'post_type' => 'property_listing', 
     'posts_per_page' => -1 
    ); 
    $the_query = new WP_Query($args); 
    if ($the_query->have_posts()) { 
     echo '<ul>'; 
     while ($the_query->have_posts()) { 
      $the_query->the_post(); 
      $datetime = date('Y-m-d H:i:s', current_time('timestamp', 0)); 
      $current_post = array(
        'ID'   => get_the_ID(), 
        'post_modified' => $datetime 
      ); 
      // Update the post into the database 
       wp_update_post($current_post); 
     } 
     wp_reset_postdata(); 
    } 
} 
+0

工作!我只是將'init'改爲'wp',它完成了這項工作!謝謝!!! – CDoc

+0

:D很棒,旅途愉快。 –