首页/内页隐藏模块
有童鞋指出加网的分享按钮加载耗时,其实Cyan也很苦恼,昨天也纠结了好久。今天尝试了多种方法后,退而求其次,算是变相实现了这一功能。同时,Cyan也从网上搜集到了首页或者内页隐藏模块的方法,正好整合一下做个笔记。
首页隐藏加网分享按钮
现行方法
在控制面板的Settings里的Formatting的最后有个Post Template框框,在里面输入如下代码:
<p><div id='ckepop'>
<a class='jiathis_button_tools_1'></a>
<a class='jiathis_button_tools_2'></a>
<a class='jiathis_button_tools_3'></a>
<a class='jiathis_button_tools_4'></a>
<a class='jiathis jiathis_txt jtico jtico_jiathis' href='http://www.jiathis.com/share/?uid=905522' target='_blank'>More…</a>
</div></p>
以上是加网分享按钮的代码(更多详情请至加网)。其实整个代码还包括一个script,不过Cyan把这行东东直接放在html里(Design → Edit HTML)。当然把所有代码都复制到Post Template框框里也可以,只是Cyan觉得script放在html里比较靠谱。这都无所谓啦。输入后就保存。这样以后每次写新博文的时候,这些代码就会自动添加在编辑框内,只要在这些代码之前写好博客,然后利用Insert jump break按钮(就是read more)把这些代码在首页隐藏掉。
在点击read more按钮进入博文内页的时候代码才显示。基本式样如下:
总结
- 上面的方法很笨,而且只能用于新写的博文,因为旧文里没有代码,所以不会有按钮。
- 也许日后找到方法,重新安装分享按钮后会有冲突,有可能造成一定的混乱。这么说下来,Cyan也不想用了……
- 尝试过把代码模块化进行隐藏(接下来介绍的方法),但是加网和disqus的layout就是合不来,可能是由于Cyan这个模板的特殊性。
首页/内页隐藏模块
类似于Cyan对加网按钮的显示需求,有些模块希望只在首页显示,而有些又希望只在内页显示。而通过修改代码可以实现这一功能。以下内容引用自ABIN'S TECH NOTE。
首先,打開範本 (Template) 的完整 HTML 編修模式 (要展開 Widget),找
<b:widget ...>
開頭</b:widget>
結尾的區段,這樣一個區段就代表一個元件,這個元件的 id, title 和 type 有助於瞭解到底是那個元件。舉個例子,像下面這段:
<b:widget id='Profile1' locked='false' title='AUTHOR PROFILE' type='Profile'>
<b:includable id='main'>
<b:if cond='data:title != ""'>
............. (程式內文略過不表)
</b:includable>
</b:widget>
就是一個顯示作者個人資料 (Profile) 的元件,如果我希望到了內頁,也就是單篇文章完整顯示的頁面時,不要顯示這個個人資料的元件,我只要在元件的區段內塞入一個 if 的條件判斷句,就可以輕易地顯示或隱藏元件了。例如:
<b:widget id='Profile1' locked='false' title='AUTHOR PROFILE' type='Profile'>
<b:includable id='main'>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:title != ""'>
............. (程式內文略過不表)
</b:if>
</b:includable>
</b:widget>
只要塞入兩行,像是上面範例的紅色那兩行判斷句就行了(Cyan注:红色两行是
<b:if cond='data:blog.pageType != "item"'>
和</b:if>
)。(缺點:如果和我一樣元件樣式有外框處理的話,即使試圖把元件藏起來,外框的上緣和下緣的部分還是不能完全消失)。而那行判斷if cond='data:blog.pageType != "item"
的意思是:如果現在所在的頁面不是"內頁"的話,才會顯示該元件 (Profile)。只要把 != 改成 ==,判斷句就變成"只有在內頁的時候才會顯示該元件"了。這類判斷所在頁面的判斷句有幾種,整理如下:
<b:if cond='data:blog.pageType != "item"'> (如果現在不在內頁的話)
<b:if cond='data:blog.pageType != "archive"'> (如果現在不在 Archive 存檔頁面的話)
<b:if cond='data:blog.pageType != "index"'> (如果現在不在 Label 標籤分類頁面的話)
<b:if cond='data:blog.url != data:blog.homepageUrl'> (如果現在不在首頁的話)
有了以上的幾種判斷句,我想不只可以控制 Sidebar 上的元件在哪種頁面顯示,任何範本裡的功能或操作也可以搭配上述條件使用,越玩真是越覺得,Blogger 你實在是太有彈性了啊!
哇~让人头晕的模块 @.@
是你才酱厉害研究出来
感受到那种难过吧
心在流泪啊 T T
这么复杂的代码都搞定了,厉害……
@Xun Zheng 不是我写的代码囧 引用而已哈哈