WordPress修改所有文章的链接

WordPress修改所有文章的链接

作者 : 资源客 发布时间: 2019-11-13

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

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

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

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

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

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

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

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

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

具体代码如下:

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

/*=== 添加设置选项 ===*/
if ( ! function_exists( 'tm_add_options' ) ) :
 
    function tm_add_options() {
 
        register_setting( 'general', 'tm_article_link' );
        add_settings_field( 'tm_article_link', '<label for="tm_article_link">文章链接</label>', 'tm_article_link', 'general' );
 
    }
 
endif;
 
if ( ! function_exists( 'tm_article_link' ) ) :
 
    function tm_article_link() {
 
        $value = get_option( 'tm_article_link', '' );
        _e( '<input type="text" name="tm_article_link" id="tm_article_link" class="large-text" value="' . $value . '">' );
        echo '<p class="description">文章外部链接地址</p>';
 
    }
 
endif;
 
add_filter( 'admin_init' , 'tm_add_options' );

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

/*=== 替换文章链接 ===*/
if ( ! function_exists( 'timoo_replace_article_link' ) ) : 
 
    function timoo_replace_article_link( $url, $post, $leavename=false ){
 
        $url = get_option( 'tm_article_link', '' );
        return $url;
 
    }
 
endif;
 
add_filter( 'post_link', 'timoo_replace_article_link', 10, 3 );

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

http://xzh.i3geek.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途及非法用途,否则后果自负!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"qq301.com",如遇到无法解压的请联系管理员!
资源客是一个优秀的分享资源站,本站资源均为各位友友分享而来,特殊原创会标明如有侵犯版权等可联系删除

资源客 » WordPress修改所有文章的链接