文章索引相當於文章目錄,點擊目錄自動跳轉到相應位置,這就需要你的文章有小標題,像我經常用 h3 標籤來做小標題,這樣所有的 h3 標籤就能形成一個索引目錄。我們要做的就是把 h3 標籤自動識別出來並組裝成一個目錄,好了,開始實現方法。

實現方法
在文章裏必須有 h3 標籤,每一個三級標題都會成為索引中的一項。將下面的代碼放到 function.php 中,就會在你的文章中自動生成一個索引。
- function article_nav($content)
- $matches = array();
- $ul_li = '';
- $r = "/<h3>(.*?)</h3>/im";
- if (preg_match_all($r, $content, $matches)) {
- foreach ($matches[1] as $num => $title) {
- $content = str_replace($matches[0][$num], '<h3 id="article_nav_' . $num . '">' . $title . '</h3>', $content);
- $ul_li .= '<li><a href="#article_nav_' . $num . '" title="' . $title . '">' . $title . "</a></li>";
- if (is_singular()) {
- $content = '<div id="fn_article_nav"><div id="article_nav_title">Article Nav</div><ul>'
- . $ul_li . '<li><a href="#respond"> 發表評論</a></li></ul></div>' . $content;
- }
- return $content;
- }
- "the_content", "article_nav");
索引樣式
索引是生成了,但是隻是在文章中的一個普通 ul list,我們要做的是把他獨立出來,所以只需要為它寫一個 css 樣式就好了。推薦用 position:fixed 把他固定到左邊或者右邊,下方提供了一個參考樣式 (見上圖),可以根據自己的情況去修改。
- #article_nav_title{font-size:11px;text-align:center;line-height:15px;color:#cc0000;border-left:3px #cc0000 solid;border-bottom:1px #aaa dotted}
- position:fixed;left:5px;top:140px;background-color:rgba(255,255,255,.55);border-radius: 0 3px 3px 0;box-shadow:0 0 2px #aaa}
- #fn_article_nav ul{padding:0!important;margin:0px!important}
- list-style:none;padding:3px;width:100px;margin:0;background: url("images/li.png") no-repeat scroll 0 5px transparent!important;text-indent: 1.6em;}