WordPress修改所有文章的链接,WordPress使用过滤器add_filter()修改所有文章的链接。
有某个客户需求,要把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() 这个函数,就恢复原来的文章链接了,而且还不影响主题的升级。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:1484712216@qq.com
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:1484712216@qq.com