省时的WordPress SQL查询

文章目录
  1. 首先
  2. 替换URL
  3. 创建新的管理用户
  4. 改变用户名
  5. 更改管理员密码
  6. 删除垃圾评论
https://www.wpexplorer.com/sql-queries-wordpress/

首先

当你的服务器里有一个以上的网站时,在执行SQL查询之前,你需要确保你修改的是正确的数据库。 另外还要注意表的前缀,因为在运行SQL命令时需要它来指定修改哪个表。 你可以在wp-config.php文件中找到WordPress使用的数据库信息(DB_NAME和$table_prefix)。
// ** MySQL settings - You can get this info from your web host ** //

/** The name of the database for WordPress */

define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */

define( 'DB_USER', 'username_here' );

/** MySQL database password */

define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */

define( 'DB_HOST', 'localhost' );
/**

 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wp_';
在上面这个例子中,数据库的名称是database_name_here。表的前缀是wp_。 下一步,进入数据库管理器。大多数服务器面板都使用phpMyAdmin进行数据库管理。 进入phpMyAdmin后,在左侧列表中找到你的数据库名称并点击它。 不过,在进行任何更改之前,请确保数据库有备份,以便在出现问题时能够迅速恢复。 点击顶部的“导出”选项卡,根据你的需要选择方式和格式,然后按 “执行”。 备份完成后,你就可以安全进行接下来的操作了。点击“SQL”选项卡,让我们开始吧。

替换URL

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurlofthewebsite.com', 'http://www.newurlofthewebsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';
比方说,我希望我的URL是https://example.com,但现在的URL是http://example.com。在这种情况下,我需要修改wp_options表里的URL。
UPDATE wp_options SET option_value = replace(option_value, 'http://example.com', 'https://example.com') WHERE option_name = 'home' OR option_name = 'siteurl';
并等待绿色背景“ 影响了 XX 行。”消息出现。同时还会显示刚才输入的SQL供核验。 为什么看到它很重要?如果你按下“执行”,但SQL中存在错误,系统将无法完成请求,你将收到错误信息,并指出执行失败的原因。该错误看起来如下:
错误 SQL 查询:
UPDATE cp_options SET option_value = replace(option_value, 'http://example.com', 'https://example.com') WHERE option_name = 'home' OR option_name = 'siteurl';
MySQL 返回:
#1146 - Table 'cp_options' doesn't exist
请注意,这个命令是一个基本命令,只会替换你的网站的URL, 如果你打算把你的网站域名从example.com改为test.net,你将需要修改数据库中所有包含你的网站域名的表,如wp_posts,wp_postmeta,也要注意插件生成的表(例如WooCommerce)。 要做到这一点,你将需要至少基本的SQL培训。还有一个选择是在文本编辑器中打开你导出的数据库,用Ctrl+H将所有的旧域名替换成新的。 如果这听起来太复杂,还有其他各种工具可以帮你完成这一过程(如Better Search & Replace插件)。

创建新的管理用户

如果你需要在你的安装中添加一个具有管理员角色的新用户,你需要使用以下命令,并根据你的喜好进行修改。
INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
VALUES ('yourlogin', MD5('yourpassword'), 'firstname lastname', '[email protected]', '0');
# VALUES对应 (登录时的用户名, 密码, 显示名, 邮箱地址, 勿动);

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users),
'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
你需要根据你的需要,修改用户名和密码等。 例如,我想创建一个用户mydeveloper,密码是mypassword,我的开发者的名字是John Doe,电子邮件是[email protected]。因此,我的SQL将如下所示。
INSERT INTO `wpc7_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
VALUES ('Mydev', MD5('mypassword'), 'John Doe', '[email protected]', '0');

INSERT INTO `wpc7_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users),
'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `wpc7_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wpc7_users), 'wp_user_level', '10'
注意,你不需要修改wp_user_level或数字0、10、13,因为它们意味着用户角色和相应的权限。 修改完成后,按下“执行”。应显示成功的结果,如:
插入了 1 行。
INSERT INTO `wpc7_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
VALUES ('Mydev', MD5('mypassword'), 'John Doe', '[email protected]', '0');
略……

改变用户名

要改变登录时用的用户名(和昵称不同),回到SQL选项卡,运行以下命令。
UPDATE wp_users SET user_login = 'newlogin' WHERE user_login = 'admin';
假设我的默认用户名是mydeveloper(就是我之前创建的那个),我想重新设置用户名为secureduser。我需要执行这条SQL:
UPDATE wpc7_users_users SET user_login = 'secureduser' WHERE user_login = 'mydeveloper';
成功的输出看起来如下。
影响了 1 行。
UPDATE wpc7_users_users SET user_login = 'secureduser' WHERE user_login = 'mydeveloper';

更改管理员密码

UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'youruser';
比如我忘掉了我的管理员密码,想要重置,我就需要执行这个:
UPDATE wpc7_users SET user_pass = MD5( '$tR0ngP@s$w03D' ) WHERE user_login = 'secureduser';
按“执行”,等待成功信息。 WordPress使用自己的算法加密密码,但WordPress能识别经过MD5加密过的密码(不能识别未加密的明文密码!请勿往数据库里存放明文密码!),所以我就可以正常进入后台,并且WordPress会自动使用自己的算法重新加密我的密码。

删除垃圾评论

对于发布大量文章并将开放评论区供互动的站长来说,垃圾评论可能会让你变得非常痛苦。虽然你可以通过手动批准来过滤评论,但你可能想找到一种方法来快速删除所有你没有批准的东西。这就是方法。
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';
注意:两个地方的前缀都需要修改,因为wp_comments.comment_approved是表中的列。
虽然看起来遵循指示可能会比手动操作花费更多时间,但事实并非如此。你的网站越大,你要花费的时间就越多。对10个文章分别执行一个动作,最终会花费 10 倍的时间来执行。 因此,通过运行这些SQL命令,你就节省了大量的宝贵时间,并且可以把这些时间用在更重要的事情上,如内容规划或寻找灵感/想法。 祝您博客愉快!