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