经常有人会问怎么修改 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.’条!’;
就这样,一个插件中增加替换链接的功能就完成了