改变Wordpress帖子' WP Query的last_modified日期和时间

时间:2017-04-15 13:31:33

标签: php wordpress

我需要更改WordPress中所有博客帖子的上次修改日期和时间。到目前为止,我有....

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);
}
}

我没有任何错误或任何错误。我正在使用&#34; echo&#34;用于调试目的。我有两个问题。

  1. 我有6个帖子,我只得到5个
  2. 对于最后修改的字段
  3. ,似乎数据库中没有更新

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您使用此代码。(将其粘贴到您的主题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();
    }
}