之前文章推荐的 好用的 WordPress文章目录插件 Table of Contents 中有写到如果你要使用 wordpress编写较长内容的文章,为了有利于读者阅读掌握概要,那么文章目录的存在对于长篇幅的文章就显得非常有必要了。
合理的使用文章目录这个功能,可以有效帮助访客快速了解文章的内容结构,优化提高阅读体验。本文就是非插件不用插件以纯代码的方式来实现 wordpress多级文章目录的功能。
实现 wordpress多级文章目录功能的代码方法也很简单,将下面的代码添加到当前 wordpress主题的 functions.php 文件中即可:
- //wordpress多级文章目录代码 BY jianlove.com
- function article_index($content) {
- $matches = array();
- $ul_li = '';
- $r = '/<h([2-6]).*?\>(.*?)<\/h[2-6]>/is';
- if(is_single() && preg_match_all($r, $content, $matches)) {
- foreach($matches[1] as $key => $value) {
- $title = trim(strip_tags($matches[2][$key]));
- $content = str_replace($matches[0][$key], '<h' . $value . ' id="title-' . $key . '">'.$title.'</h2>', $content);
- $ul_li .= '<li><a href="#title-'.$key.'" title="'.$title.'">'.$title."</a></li>\n";
- }
- $content = "\n<div id=\"article-index\">
- <strong>文章目录</strong>
- <ol id=\"index-ul\">\n" . $ul_li . "</ol>
- </div>\n" . $content;
- }
- return $content;
- }
- add_filter( 'the_content', 'article_index' );
其实现这样的一个功能还是比较简单的,基础原理也就是在文章内容中插进标题标签,然后弄成目录就是了。
使用方法说明:
在编辑文章的时候,切换到 HTML文本模式,将需要添加到目录中的标题用【h2】至【h6】括起来都可以。
上面这段代码只是在文章显示的时候插入文章目录,并不会修改你的文章内容。当然以上代码也不包括样式美化的CSS,所以只添加以上代码,文章目录看起来可能会一片混乱,所以你得自己添加一些 css代码来个性美化一下这个目录。
如果你不会css,可以用下面这个简单的 CSS样式,将以下 css代码放到 wordpress主题目录下的 style.css中就可以了(并不保证每个wordpress网站主题都100%合适):
- #article-index {
- -moz-border-radius: 6px 6px 6px 6px;
- border: 1px solid #DEDFE1;
- float: rightright;
- 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;
- }
至此,给 wordpress网站文章添加多级文章目录的功能就已经实现了,以上代码方法可以满足日常基本的编辑需要了,有需求的朋友可以去试试了。当然如果你还是想要功能样式更加丰富的 wordpress文章目录功能,可以看看这些 wordpress文章目录插件说明。
转载请注明链接地址:荐爱小站 » 无插件实现 wordpress多级文章目录功能的代码