v 在本文區上方加個導覽列(BreadCrumbs on top)有更新 >> 0 與 1 謎詭世界
★★★請勿任意轉載本站的文章及圖片但歡迎網摘及連結並註明網站名稱與網址,勿全文轉載,彼此尊重,
是網路的基本禮儀。


>
2013 曬書節 - 萬種商品49元起!

2009年11月3日 星期二

在本文區上方加個導覽列(BreadCrumbs on top)有更新


BreadCrumbs是麵包屑的意思,也就是文章的導引列,可以詳細的列出此篇文章的上源結構的一種導覽方式,也是方便讀者想讀取同一分類文章的作法,有需要的人可以參考看看。

但這個導覽列有個缺點,就是如果一篇文章有多個分類,這個工具只會選擇一個分類顯示,目前已解決多種分類的問題,和標題出現兩次(可自行選擇導欄列要不要出現標題)的問題,在第三步驟的語法上修改,謝謝disorder網友熱心的提醒與教導,如下圖這樣。


設定方法有些複雜,但我想依照步驟慢慢做,應該就沒問題,呈現的方式類似這樣,裡面的關鍵字或是呈現出來的形式,則是可以自己再行設計,


切記,一定要先備份原始模版,因為放了這些語法,會導致整個主文區的html整個都不一樣,不是刪減就能挽回的,
進入後台→版面配置→修改Html→勾選"展開小裝置範本"
第一步驟
先加入導覽列的外觀型式css語法,放在]]></b:skin>之前即可,

.breadcrumbs {
padding:5px 5px 5px 0px;
margin: 0px 0px 15px 0px;
font-size:95%;
line-height: 1.4em;
border-bottom:3px double #e6e4e3;
}

border-bottom:3px double #e6e4e3;這是在導覽列下方有個雙線條的設計,這裡你可以改成你要的線條或是加上背景也是可以的。

第二步驟

找到<b:includable id='main' var='top'>這段主文區最上方語法,原始的語法是
<b:includable id='main' var='top'>
<!-- posts -->
<div class='blog-posts hfeed'>
<b:include data='top' name='status-message'/>
<data:adStart/>

在中間加入三行紅色的語法,變成如下列這樣,
<b:includable id='main' var='top'>
<!-- posts -->
<div class='blog-posts hfeed'>
<!-- disable default status message
<b:include data='top' name='status-message'/>
default status message disabled -->
<b:include data='posts' name='breadcrumb'/>
<data:adStart/>


第三步驟
在<b:includable id='main' var='top'>之前加入以下這段語法,所以他呈現的地方是在主文區的上方,
<b:includable id='breadcrumb' var='posts'>
<b:if cond='data:blog.homepageUrl == data:blog.url'>
<!-- No breadcrumb on front page -->
<b:else/>
<b:if cond='data:blog.pageType == "item"'>
<div class='breadcrumbs'>
Browse » <a expr:href='data:blog.homepageUrl' rel='tag'>Home</a>»
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:loop>
»<span><data:post.title/></span>
</b:if>
</b:loop>
</div>
<b:else/>
<b:if cond='data:blog.pageType == "archive"'>
<div class='breadcrumbs'>
Browse » <a expr:href='data:blog.homepageUrl'>Home</a> » Archives for <data:blog.pageName/>
</div>
<b:else/>
<b:if cond='data:blog.pageType == "index"'>
<div class='breadcrumbs'>
<b:if cond='data:blog.pageName == ""'>
Browse » <a expr:href='data:blog.homepageUrl'>Home</a> » All posts
<b:else/>
Browse » <a expr:href='data:blog.homepageUrl'>Home</a> » Posts filed under <data:blog.pageName/>
</b:if>
</div>
</b:if>
</b:if>
</b:if>
</b:if>
</b:includable>

上面的紅色的Browse及Home是預設的文字,你可以改成你要的文字,一共有四組,例如瀏覽或首頁都是可以的,綠色的部份則是相關敘述,也可以改成中文,如下圖這樣,按下儲存,你的文章導覽列就出現了。


目前這項功能是將導覽列放在文章標題上方,如果你想放在文章末或是文章標題下方,目前我自己測試過,沒法達成,或許有高手再分享。

另外Abin也有介紹以年月份做分類的導覽連結列 (Year & Month Breadcrumbs),因為有的人的分類標籤不只一種,喜歡這種方式的人也可以使用看看。

2009.11.3.10:00pm更新,
有網友提到標題重複兩次的部份,可以將第三步驟裡面的(紫色)
<span><data:post.title/></span>這部分刪除就可以不會有兩次標題的情形。

參考來源:
Make breadcrumb on top of post

9 則留言 :

  1. 我發覺你這樣變成有2行一樣的標題耶!

    回覆刪除
  2. 對啊,所以字要設小一點。

    回覆刪除
  3. (你這篇我剛好感興趣, 我不是要來踢館的, 先聲明...)

    1.我發現他就是把本來在 span class='post-labels' 的程式碼搬家而已, 也有 b:loop, 所以分類有1個以上也會出現才對吧?
    2.針對我以上的推論, 和你說的'放在...文章標題下方', 我試作了一下, 把 span class='post-labels' 那段搬到文章標題下方. 完全成功!

    sample 在這裡:
    http://www.ojisang.com/

    我相信程式碼你一定都看懂, 有疑問請儘管提出.

    只是我覺得, 那導覽列放標題下方看起來不會很奇怪嗎?

    回覆刪除
  4. 先解決標題重複的部份,等一下再來看你的方式,我很高興有人願意分享,我才能夠再補充資料,很感謝。

    回覆刪除
  5. 謝謝你,托你的福,我已經解決了分類的問題。

    回覆刪除
  6. 很實用的技巧,多謝指導囉!

    回覆刪除
  7. 改了之後我也覺得不錯用,尤其對分類多的之後。

    回覆刪除
  8. 我非常喜歡這裡
    從這裡幫助了我的部落格更新許多
    這功能也非常實用
    (尤其對不會程式碼的我)
    謝謝分享

    回覆刪除
  9. 謝謝你的鼓勵,慢慢看,你也會跟我一樣學會稍微了解怎麼看程式碼的。

    回覆刪除

設有留言驗證及核准,版主閱覽後,留言才會顯示,發問前請善用網站目錄Google搜尋功能

Related Posts Plugin for WordPress, Blogger...