WordPress: Change Author ID / Attribution On All Posts In a Single Pass

by on May 7, 2012 · 2 comments· LAST UPDATED June 25, 2012

in

I can access my MySQL database using the command line option provided by vps provider. How do I change author ID or attribution on all wordpress blog posts in a single pass?

First, backup your wordpress database, enter:

 
mysqldump -u user -p blog-db-name-here > /path/to/backup/dir/blog.db.sql
 
WARNING! These examples may crash your blog or database if not executed with care. Make a backup - it cannot be stressed enough how important it is to make a backup of your files and mysql database before you do this.

Type the following shell command to connect to your blog database:

 
mysql -u user -p blog-db-name-here
 

OR

 
mysql -u user -h server.ip.here -p blog-db-name-here
 

Sample outputs:

Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15275063
Server version: 5.1.61-log Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Type the following command to list all authors IDs at mysql> prompt:

mysql> SELECT ID, display_name FROM wp_users;

Sample outputs:

+----+--------------+
| ID | display_name |
+----+--------------+
|  1 | Vivek Gite   |
|  2 | nixcraft     |
+----+--------------+
2 rows in set (0.04 sec)

In this output, I've two ID of the user. I'd like to change ID #2 (nixcraft) to ID #1 (Vivek Gite). In other words set post author to ID#1 for all posts where post author ID already set to ID#2. Type the following MySQL command:

mysql> UPDATE wp_posts SET post_author='1' WHERE post_author='2';

Sample outputs:

Query OK, 110 rows affected (0.13 sec)
Rows matched: 110  Changed: 110  Warnings: 0

Quit the mysql, enter:

mysql> quit

You need to flush cached post by visiting your wp-content/cache/ directory and delete all the files. If you are using memcached type the following command to flush memcahed cache:

 
echo "flush_all" | nc 192.168.1.2 11211
 
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 2 comments… read them below or add one }

1 krishna May 7, 2012 at 9:04 am

Nice web and nice posts, keep doing the good work, thank you.

Reply

2 Pranav August 12, 2012 at 5:54 pm

Thank you Vivek! I had the exact need and this post saved my time like anything. Some how the bulk edit within WordPress was rendering the site unavailable for few mins even with small number of posts.

Reply

Leave a Comment

Tagged as: , , , , , , , , , ,

Previous Faq:

Next Faq: