有没有办法找到不包含单词的WordPress帖子?

时间:2020-04-27 作者:hindisong.cc

我正在尝试取消发布不包含单词的wordpress帖子。,它就像搜索的反义词,搜索是在wordpress帖子中查找字符串,我需要查找wordpress帖子,。我认为这对很多人都很有用,因为我们可以用一个神奇的词来告诉我们插件在帖子中是否正常工作。,然后找到所有可以保存为草稿并单独处理的帖子。

1 个回复
SO网友:simongcc

您可以使用一个简单的查询和循环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

}