本文目錄1用代碼實現文章目錄2使用說明3CSS樣式參考
給文章添加文章目錄功能,不僅是文章條理更清楚,還有利於SEO,下面將介紹 露兜 老大的使用代碼來實現文章目錄的方法,方便喜歡折騰代碼的朋友,如果你不想折騰代碼,你可以試試下面的WordPress文章目錄外掛:TOC 和 Content Index for WordPress。
用代碼實現文章目錄
1.將下面的代碼添加到主題的 functions.php 文件的 最後一個 ?> 前面:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
function article_index($content) { /** * 名稱:文章目錄外掛 * 作者:露兜 * 部落格:http://www.ludou.org/ * 最後修改:2011年2月10日 */ $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="title-'.$num.'">'.$title.'</h3>', $content); $ul_li .= '<li><a href="#title-'.$num.'" title="'.$title.'">'.$title."</a></li>n"; } $content = "n<div id="article-index"> <strong>文章目錄</strong> <ul id="index-ul">n" . $ul_li . "</ul> </div>n" . $content; } return $content; } add_filter( "the_content", "article_index" ); |
function article_index($content) {
/**
* 名稱:文章目錄外掛
* 作者:露兜
* 部落格:http://www.ludou.org/
* 最後修改:2011年2月10日
*/ $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="title-‘.$num.’">’.$title.'</h3>’, $content);
$ul_li .= ‘<li><a href="#title-‘.$num.’" title="’.$title.’">’.$title."</a></li>n";
} $content = "n<div id="article-index">
<strong>文章目錄</strong>
<ul id="index-ul">n" . $ul_li . "</ul>
</div>n" . $content;
} return $content;
} add_filter( "the_content", "article_index" );
使用說明
在編輯文章的時候,在可視化模式下,選中文字,設置為標題3(H3),或者切換到HTML模式,將需要添加到目錄中的標題用<h3>和</h3>括起來就可以瞭,如<h3>我是索引標題</h3>
。當然你也可以用其他標簽,如<h2>,<p>等,將以上代碼第12行中的h3改成你自己的標簽名稱就可以瞭。
CSS樣式參考
為瞭實現前臺的顯示效果,你可以參考下面的css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#article-index { -moz-border-radius: 6px 6px 6px 6px; border: 1px solid #DEDFE1; float: right; margin: 0 0 15px 15px; padding: 0 6px; width: 200px; line-height: 23px; } #article-index strong { border-bottom: 1px dashed #DDDDDD; display: block; line-height: 30px; padding: 0 4px; } #index-ul { margin: 0; padding-bottom: 10px; } #index-ul li { background: none repeat scroll 0 0 transparent; list-style-type: disc; padding: 0; margin-left: 20px; } |
#article-index {
-moz-border-radius: 6px 6px 6px 6px;
border: 1px solid #DEDFE1;
float: right;
margin: 0 0 15px 15px;
padding: 0 6px;
width: 200px;
line-height: 23px;
}
#article-index strong {
border-bottom: 1px dashed #DDDDDD;
display: block;
line-height: 30px;
padding: 0 4px;
}
#index-ul {
margin: 0;
padding-bottom: 10px;
}
#index-ul li {
background: none repeat scroll 0 0 transparent;
list-style-type: disc;
padding: 0;
margin-left: 20px;
}
以上代碼的功能比較單一,隻有單級目錄,不能實現多層級的復雜而完善的索引目錄功能,如果你需要這些功能,那你就要借助文章目錄外掛:TOC 和 Content Index for WordPress。