大家都知道在SEO中加入nofollow可以避免我們本頁的權(quán)重傳遞出去,而更多的保留在站內(nèi)的內(nèi)鏈之中,因此很多時候我們在網(wǎng)頁一些非重要超鏈接上面加上rel=”nofollow”來處理,比如聯(lián)系QQ、微博關(guān)注等等,而有時候就做得更極端一些,干脆所有的外鏈都加上這個標簽。而我們最近接到一個具體化的需求,就是在Discuz友情鏈接部分加入這個標簽。
1、問題分析
如果你是一個純粹的SEOer或者一個寫靜態(tài)頁面的設(shè)計師,那么你肯定會認為這很簡單,直接在a標簽中加上rel=”nofollow”就可以,但實際上大家可以看下Discuz的模版中的代碼。
DZ使用了PHP的模版引擎,因此能夠在模版文件中直接寫上一些PHP變量,而上面就是DZ模版中關(guān)于友情鏈接的核心代碼,大家會發(fā)現(xiàn)這里不是我們想象的那樣,也就不是那種直接把a標簽寫在模版中,而是讀取一個$_G的某個關(guān)鍵字變量。因此很顯然不能直接在模版里修改HTML的結(jié)構(gòu)來修改。
2、方案一:修改PHP
作為一個官方認證的開發(fā)者,我不推薦大家這么做,因為這樣做其實破壞了DZ的原始結(jié)構(gòu),而且一旦升級文件又會被覆蓋,在標準的二次開發(fā)過程中我們應(yīng)該只限修改的template文件夾(修改模版)及source\plugin文件夾(增加插件)。當(dāng)然如果你不在乎這樣就采用這種方式把,因為這個友情鏈接相關(guān)的文件位于source/function/cache/cache_forumlinks.php。這屬于二次開發(fā)不適宜修改的地方,而且更新程序版本的時候也會覆蓋掉。
當(dāng)然說到了這個文件位置了,要修改就簡單了;其實這個文件中就一個build_cache_forumlinks()方法,就是進行友情鏈接內(nèi)容緩存的。修改就修改這個方法中所有的a標簽,在a標簽中加入rel=”nofollow”就可以。如這里修改最后一個a標簽。
3、方案二:JS
上面那種方式我也說了不是一種推薦的方式,而這里說的JS方式就是我所推薦的,因為它只需要改變我們的模版文件,甚至只是插入一段JS即可解決問題。在上面開始提到的模版文件中一開始div標簽就用一個id選擇器category_lk,那么我們就可以來以此做文章。通過DOM來改變(實際上是增加)我們需要增加的代碼,下面是我寫的幾行簡單的原生JS代碼,測試沒問題。
不管是哪種方式,我們都可以通過查看當(dāng)前論壇友情鏈接處的源代碼,我們會發(fā)現(xiàn)所有a標簽中都加了一個nofollow。實際上大家可以進一步控制,比如控制一部分加上,而另外的一部分不加上nofollow。而且不管是Discuz還是其他的程序,只要我們掌握了原理,就都不是問題啦。
本文來源(由長沙微構(gòu)網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明出處)
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!