对于垃圾箱中的所有帖子,我需要执行以下操作:
1)将其状态从“垃圾”更改为“发布”
2)将名为“new_status”的自定义字段添加到值为“已删除”的帖子中。
理想情况下,我需要使用一个可以放在functions.php。
中的函数我想我需要从这样的事情开始......
$myconversion = $wpdb->get_row("SELECT * FROM 'wp_posts' WHERE post_status = 'publish'");
...但是因为MYSQL不是我的强项。
任何帮助都会很棒。
答案 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();