让代码更简单

当前位置:代码狗 > WordPress > WP建站 > 正文

WordPress批量更新文章内容中的链接域名

重要:本文最后更新于2019-11-30 08:29:15,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

WordPress批量更新文章内容中的链接域名一般用于更改域名后,以前发布的文章中加的链接地址就不对了,如果不改,将会出现很多404链接。如果只有一两篇文章还好,对于几千上万文章的网站,手动修改就不现实了。实现批量修改的办法很多,一般使用如下两种办法。

使用WP钩子动态替换

我们都知道,在wordpress加载文章的时候会触发一个动作钩子the_content,这个时候就会执行挂载在这个钩子上的所有函数,我们可以增加一个函数,将即将输出的文章内容进行一次替换,然后返回我们替换过后的数据。

在主题的functions.php文件中加入如下代码:

function replace_text_wps($content){  
    $replace = array(  
       // '关键词' => '替换的关键词'  
        'WordPress' => '代码狗wordpress教程',  
        '原域名' => '新域名',  
    );  
    $content= str_replace(array_keys($replace), $replace, $content);  
    return $content;  
}  
add_filter('the_content', 'replace_text_wps');
这个时候查看文章就会发现内容被修改了,但是文章摘要中的内容却没修改,将上面的函数,挂载到摘要加载钩子上即可解决问题。
add_filter('the_excerpt', 'replace_text_wps');

我不推荐使用这种方式,一是增加了PHP代码,二是数据库内容并未修改,只是输出时替换了。

修改数据库内容

这种方式一劳永逸,不过在操作前切记一定要备份数据库,数据无价,请珍惜!艺高人胆大的除外。wordpress的文章数据都存储在posts表中,我们通过mysql命令批量替换目标即可。posts数据表前缀默认是wp_自定义的除外,终端或者phpmyadmin链接上数据库后,执行以下mysql命令即可。

UPDATE `wp_posts` SET `post_content` = replace(post_content,'被替换的字符串','新字符串');

注意其中的wp_posts表名,根据自己的实际情况替换之。

执行完成后,可以看到数据库返回的修改了多少行数据,为了预防出错,请一定要记得备份数据!

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏

评论 3

  1. #2

    我选择装插件替换

    奶爸建网站笔记7个月前 (12-01)回复
  2. #1

    你还真来几百篇啊?

    缙哥哥7个月前 (11-30)回复
    • 没写的了

      代码狗7个月前 (11-30)回复
×

请作者吃根烤肠!

支付宝