سؤال

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.

هل كانت مفيدة؟

المحلول

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.

نصائح أخرى

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/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى wordpress.stackexchange
scroll top