1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress修改所有文章的链接

有某个客户需求,要把 wordpress 网站所有文章的链接地址全部换成一个指定的外部链接,还要自己可以在后台随时更换链接地址。当然,我不知道客户想要干什么,总之客户的需求去实现就对了。收到客户的需求后,马上有一个思路:

1、后台添加选项用于输入外部链接地址。

2、修改客户使用的主题文件,读取后台输入的链接地址,替换掉所有 A 标签中原来的链接地址。

看起来应该是解决了客户需求了,不过细想一下,还是有存在一些问题的:

1、客户在后台升级了主题怎么办?每升级一次再修改一次代码?

2、客户在其他地方调用了文章怎么办?比如用了小工具什么的在边栏或者底部来显示文章。

于是就产生了第二个思路:

1、同上,后台加个选项用来输入外部链接地址。

2、使用 WordPress 的 add_filter() 过滤器函数,替换文章的链接地址。

具体代码如下:

1、添加一个设置选项用来输入外部链接的地址

  1. /*=== 添加设置选项 ===*/
  2. if ( ! function_exists( 'tm_add_options' ) ) :
  3. 
    
  4.     function tm_add_options() {
  5. 
    
  6.         register_setting( 'general', 'tm_article_link' );
  7.         add_settings_field( 'tm_article_link', '<label for="tm_article_link">文章链接</label>', 'tm_article_link', 'general' );
  8. 
    
  9.     }
  10. 
    
  11. endif;
  12. 
    
  13. if ( ! function_exists( 'tm_article_link' ) ) :
  14. 
    
  15.     function tm_article_link() {
  16. 
    
  17.         $value = get_option( 'tm_article_link', '' );
  18.         _e( '<input type="text" name="tm_article_link" id="tm_article_link" class="large-text" value="' . $value . '">' );
  19.         echo '<p class="description">文章外部链接地址</p>';
  20. 
    
  21.     }
  22. 
    
  23. endif;
  24. 
    
  25. add_filter( 'admin_init' , 'tm_add_options' );

2、添加过滤器,替换文章链接

  1. /*=== 替换文章链接 ===*/
  2. if ( ! function_exists( 'timoo_replace_article_link' ) ) :
  3. 
    
  4.     function timoo_replace_article_link( $url, $post, $leavename=false ){
  5. 
    
  6.         $url = get_option( 'tm_article_link', '' );
  7.         return $url;
  8. 
    
  9.     }
  10. 
    
  11. endif;
  12. 
    
  13. add_filter( 'post_link', 'timoo_replace_article_link', 10, 3 );

完美!就算以后客户不需要这个功能了,只要注释掉 add_filter() 这个函数,就恢复原来的文章链接了,而且还不影响主题的升级。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/90126

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注