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

admin2025-06-06  7

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' );
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749170431a316954.html

最新回复(0)