WordPress 怎么修改文章中已经写入数据库的链接地址

经常有人会问怎么修改 WordPress 已经写入数据库中的链接地址,通常都是 http 升级 https 啊,替换资源链接等需求

其实这也很简单,就一条 SQL 的事情,我以 http 升级 https 时的操作为例,在数据库执行以下 SQL 语句:

UPDATE wp_posts SET post_content = REPLACE( post_content, 'http://qq52o.me', 'https://qq52o.me');

就这样,很简单。同时我也给 WordPress 和 腾讯 COS 上传插件中增加了替换功能,不用写 SQL,只需要填入对应的域名就行

怎么做到的呢,WordPress 为用户提供了一系列用于数据库操作的函数类:wpdb

$wpdb 是 WordPress 提供的一个全局变量,该全局变量是负责与 WordPress 数据库交流的类的实例化

你可以通过 query 函数在 WordPress 数据库中执行任何 SQL 语句

函数返回一个与选定内容的行数相应的整数。如果发生 MySQL 错误,函数返回 FALSE

在自定义函数中调用时需要声明引用全局变量$wpdb

global $wpdb;
$table_name = $wpdb->prefix .'posts';
$oldurl = $_POST['old_url'];
$newurl = $_POST['new_url'];
$result = $wpdb->query("UPDATE $table_name SET post_content = REPLACE( post_content, '$oldurl', '$newurl') ");

echo '

替换成功!共批量执行'.$result.'条!

';

就这样,一个插件中增加替换链接的功能就完成了

4 条评论

发表评论

*