从垃圾箱中删除帖子,向其添加自定义字段

时间:2016-04-12 12:54:59

标签: mysql wordpress function

对于垃圾箱中的所有帖子,我需要执行以下操作:

1)将其状态从“垃圾”更改为“发布”

2)将名为“new_status”的自定义字段添加到值为“已删除”的帖子中。

理想情况下,我需要使用一个可以放在functions.php。

中的函数

我想我需要从这样的事情开始......

$myconversion = $wpdb->get_row("SELECT * FROM 'wp_posts' WHERE post_status = 'publish'");

...但是因为MYSQL不是我的强项。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:2)

幸运的是你不必知道SQL,你有强大的WP_Query函数,所以我认为你需要这样的东西(把它添加到你的functions.php文件中)

function wp_update_all_posts_status($params = null){
    $args = array(
        'nopaging' => true, // Loop through all posts at once
        'post_status' => array('trash'), //Get posts "from the trash"
    );

    $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) {

        while ( $the_query->have_posts() ) {
            $the_query->the_post();
            // Change the status the post to publish
            $updated = wp_update_post( array('ID' => $the_query->post->ID, 'post_status' => 'publish' ));
            //add the post "new_status" meta
            add_post_meta( $the_query->post->ID, 'new_status', 'deleted' ); 
        }
    }
}

wp_update_all_posts_status();