您可以使用一个简单的查询和循环wp_update_post 函数通过检查单词来更新提供ID的帖子,帖子类型preg_match
以下示例显示了对循环中帖子标题不包含的所有帖子的帖子状态的简单更新Hello
或内容不包含Hello
.
下面的代码仅通过引入主题函数就可以证明是有效的。php。
$args = array(
\'post_type\' => \'post\', // any post type
\'post_status\' => array( \'publish\', \'private\', \'draft\' ), // any types
);
$query_post = new WP_Query( $args );
if ( $query_post->have_posts() ) {
while ( $query_post->have_posts() ) {
$query_post->the_post();
$postarr = array(
\'ID\' => get_the_ID(),
\'post_type\' => \'post\',
\'post_status\' => \'publish\', // change to other type needed such as draft
);
// eg. if not contain specific words in title or content
if( ! preg_match( "/Hello/", get_the_title() ) || ! preg_match( "/Hello/", get_the_content() ) ) {
$result = wp_update_post( $postarr );
// for debug
var_dump($result); // (int|WP_Error) The post ID on success. The value 0 or WP_Error on failure.
}
}
wp_reset_query();
}
在某些情况下,这取决于插件和主题设置的加载,将
init hook
将确保在加载所有必要组件的情况下运行
// in functions.php
add_action( \'init\', \'ws365194_my_test\' );
function ws365194_my_test() {
// paste above code here and run
}