Question

Is there a WP-CLI command to disable comment windows for all existing posts (pages/blogposts)?

I ask this since when I change a theme for a site I have, all pages in that site getting their comment windows again and I need to individually disable comments per each page.

In this particular site I have up to 10 webpages but in any case I'd like to that with WP-CLI. Is it possible?

If you don't know a way with WP-CLI please at least share another good way you know.

Was it helpful?

Solution

Here is an untested suggestion for wp-cli approach:

We can list post IDs of published posts with open comment status with:

wp post list --post-status=publish --post_type=post comment_status=open --format=ids

and update a post to a closed comment status with:

wp post update 123 --comment_status=closed

where 123 is a post id.

We can then combine those two into:

wp post list --post-status=publish --post_type=post comment_status=open --format=ids \
| xargs -d ' ' -I % wp post update % --comment_status=closed

or

for post_id in $(wp post list --post_status=publish \
    --post_type=post --comment_status=open --format=ids); \ 
do wp post update $post_id --comment_status=closed; done;

Then there's the ping_status as well to consider.

There are other ways than wp-cli but please remember to take backup before testing.

OTHER TIPS

You can execute SQL query to change comment status of all posts using wp db query command.

wp db query "UPDATE wp_posts SET comment_status = 'closed';"

use this command to install the plugin

wp plugin install disable-comments

Use it from backend it has lots of Options

Plugin Url: https://wordpress.org/plugins/disable-comments/

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top