$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>mysql - Delete posts with word count less than x number of words|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

mysql - Delete posts with word count less than x number of words

matteradmin7PV0评论

I searched a lot about this, found plugins that are out dated and consumes massive resources and finally do nothing, is there like an SQL line to delete all posts that have a word count like less than 100 words?

Thanks,

I searched a lot about this, found plugins that are out dated and consumes massive resources and finally do nothing, is there like an SQL line to delete all posts that have a word count like less than 100 words?

Thanks,

Share Improve this question asked Nov 19, 2018 at 4:20 Abdelrahman EllithyAbdelrahman Ellithy 11 bronze badge 2
  • Counting words with SQL isn't so easy. The problem is that it's pretty hard to define what a word is, so that MySQL can understand it. For example there are special strings that are spaces ( ) and can be used as word separators... Also you can have HTML tags inside your content - how should that be counted? – Krzysiek Dróżdż Commented Nov 19, 2018 at 7:53
  • may be character length? in average the word is 5 characters or so, so can we delete using sql posts with length below 500 or 600 characters (inculding spaces for example)? – Abdelrahman Ellithy Commented Nov 19, 2018 at 15:32
Add a comment  | 

1 Answer 1

Reset to default -1
function delete_posts() {
$lastposts = get_posts(array('numberposts' => -1));

if ( $lastposts ) {
    foreach ( $lastposts as $post ) :
        setup_postdata( $post ); ?>        
        <?php
        $content = get_the_content();
        if (str_word_count($content) < 100) {   
            wp_trash_post($post->ID);
        }

        ?>
        <?php
    endforeach; 
    wp_reset_postdata();
}}add_action( 'init', 'delete_posts' );
Post a comment

comment list (0)

  1. No comments so far