经常有人会问怎么修改 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.'条!
';
就这样,一个插件中增加替换链接的功能就完成了
😀 更换域名才会用到这个命令
不行,我得百度一下zblog有没有你后面这种类似的啦。
后面的代码好像直接丢到当前主题的函数文件中,运行一下前端然后就可以执行成功了,然后就可以删除了。
@boke112导航 嗯,我集成在插件里了做了判断,不影响