1. 程式人生 > >分享知更鳥Begin主題外鏈跳轉程式碼,相容下載按鈕和彈出層上的外鏈

分享知更鳥Begin主題外鏈跳轉程式碼,相容下載按鈕和彈出層上的外鏈

今天 osx86 問我,說網上找的程式碼用到 begin 主題上,會導致下載按鈕(href=#button)也被替換,導致無法彈出下載介面。其實張戈部落格之前分享過一個部落格外鏈轉內鏈的跳轉到程式碼,可以相容 HotNewspro 主題的下載按鈕和文章索引,於是我要他站內搜尋下。

他用了後發現確實可以,不過給我反饋了一個問題:確實濾過了下載按鈕和索引,但是彈出層上的下載連結沒有被替換成跳轉鏈。

我隨即看了下,發現確實是這樣。因為程式碼是在文章 content 過濾的,而下載按鈕是獨立的模板,所以並不會生效。

唉,世上無難事,依葫蘆畫瓢是也!

方法很簡單,找到下載按鈕相關模板檔案,然後替換不就得了嗎?且往下看。

一、新增函式

將如下 php 程式碼新增到 主題目錄下的 functions.php 檔案中:

PHP
12345678910111213 /*** Wordpress 簡單的外鏈判斷和跳轉函式,相容非常規的a標籤* 文章地址:http://zhangge.net/5041.html* 跳轉程式碼:http://zhangge.net/2703.html*/functionlink_nofollow($url){if(strpos($url,'://')!==false&&strpos($url,home_url())===false){$url=str_replace($url,home_url()."/go/?url="
.$url,$url);}return$url;}

這個函式使用很簡單,直接傳入連結,函式會自動判斷,並絕對會返回一個內鏈,比如:

<?php echo link_nofollow("http://www.baidu.com");?>

就會輸出:

http://zhangge.net/go/?url=http://www.baidu.com

二、修改模板

已經有了替換函數了,下一步就是找到你要替換的地方,將原先的值傳入函式即可。Begin 的下載彈出層程式碼位於 begin/inc/file.php

原始程式碼如下:

PHP
12345678910111213141516171819202122232425262728293031 <?phpif(get_post_meta($post->ID,'button1',true)):?><div id="button_box"><div id="button_file"><h3>檔案下載</h3><div class="file_ad"align="center"><?phpechostripslashes(zm_get_option('ad_f'));?></div><div class="buttons"><?phpif(get_post_meta($post->ID,'button1',true)):?><?php$button1=get_post_meta($post->ID,'button1',true);?><?php$url1=get_post_meta($post->ID,'url1',true);?><ahref="<?phpecho$url1;?>"rel="external nofollow"target="_blank"><?phpecho$button1;?></a><?phpendif;?><?phpif(get_post_meta($post->ID,'button2',true)):?><?php$button2=get_post_meta($post->ID,'button2',true);?><?php$url2=get_post_meta($post->ID,'url2',true);?><ahref="<?phpecho$url2;?>"rel="external nofollow"target="_blank"><?phpecho$button2;?></a><?phpendif;?><?phpif(get_post_meta($post->ID,'button3',true)):?><?php$button3=get_post_meta($post->ID,'button3',true);?><?php$url3=get_post_meta($post->ID,'url3',true);?><ahref="<?phpecho$url3;?>"rel="external nofollow"target="_blank"><?phpecho$button3;?></a><?phpendif;?><?phpif(get_post_meta($post->ID,'button4',true)):?><?php$button4=get_post_meta($post->ID,'button4',true);?><?php$url4=get_post_meta($post->ID,'url4',true);?><ahref="<?phpecho$url4;?>"rel="external nofollow"target="_blank"><?phpecho$button4;?></a><?phpendif;?></div><div class="clear"></div></div></div><?phpendif;?>

其中的 url1-4 就是我們要處理的目標,所以如下修改即可:

Shell
1234567891011121314151617181920212223242526272829303132 <?phpif(get_post_meta($post->ID,'button1',true)):?><div id="button_box"><div id="button_file"><h3>檔案下載</h3><div class="file_ad"align="center"><?phpechostripslashes(zm_get_option('ad_f'));?></div><div class="buttons"><?phpif(get_post_meta($post->ID,'button1',true)):?><?php$button1=get_post_meta($post->ID,'button1',true);?><!--用我們自定義的函式過濾一下即可--><?php$url1=link_nofollow(get_post_meta($post->ID,'url1',true));?><ahref="<?phpecho$url1;?>"rel="external nofollow"target="_blank"><?phpecho$button1;?></a><?phpendif;?><?phpif(get_post_meta($post->ID,'button2',true)):?><?php$button2=get_post_meta($post->ID,'button2',true);?><?php$url2=link_nofollow(get_post_meta($post->ID,'url2',true));?><ahref="<?phpecho$url2;?>"rel="external nofollow"target="_blank"><?phpecho$button2;?></a><?phpendif;?><?phpif(get_post_meta($post->ID,'button3',true)):?><?php$button3=get_post_meta($post->ID,'button3',true);?><?php$url3=link_nofollow(get_post_meta($post->ID,'url3',true));?><ahref="<?phpecho$url3;?>"rel="external nofollow"target="_blank"><?phpecho$button3;?></a><?phpendif;?><?phpif(get_post_meta($post->ID,'button4',true)):?><?php$button4=get_post_meta($post->ID,'button4',true);?><?php$url4=link_nofollow(get_post_meta($post->ID,'url4',true));?><ahref="<?phpecho$url4;?>"rel="external nofollow"target="_blank"><?phpecho$button4;?></a><?phpendif;?></div><div class="clear"></div></div></div><?phpendif;?>

儲存後,文章下載彈出層裡面的外鏈就變成了內鏈跳轉的模式了。

程式碼和方法都非常簡單,有需要的自己折騰吧!不清楚的可以參考一下之前分享 2 篇文章: