Warning: session_start(): Unable to clear session lock record in /www/wwwroot/reaff.com/wp-content/themes/Autumn-Pro/functions.php on line 5

Warning: session_start(): Failed to read session data: memcached (path: 127.0.0.1:11211) in /www/wwwroot/reaff.com/wp-content/themes/Autumn-Pro/functions.php on line 5
如何修改WordPress中已经写入数据库的文章链接地址 – 王板汪之家

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

cera cera

经常被问到如何修改 WordPress 已经写入数据库中的文章链接地址,通常都是http升级到https,替换资源链接等需求。

 

其实很简单,执行一条 SQL 命令,以 http 升级 https 时的操作为例,在数据库执行以下 SQL 语句:

  1. UPDATE wp_posts SET post_content = REPLACE( post_content, ‘https://www.liwei8090.com’, ‘https://www.liwei8090.com’);

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

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

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

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

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

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

  1. global $wpdb;
  2. $table_name = $wpdb->prefix .’posts’;
  3. $oldurl = $_POST[‘old_url’];
  4. $newurl = $_POST[‘new_url’];
  5. $result = $wpdb->query(“UPDATE $table_name SET post_content = REPLACE( post_content, ‘$oldurl’, ‘$newurl’) “);
  6. echo ‘替换成功!共批量执行’.$result.’条!’;

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

cera cloudiplc tengxunyun

相关推荐