可能有很多童鞋对HotNews Pro 2.7主题使用说明上面的目录导航感兴趣,点击上面的目录文字可以快速跳转到相关内容,适合长文章或者有特殊需求的文章使用。本文提供三种实现方法:
方法一、为了方便HotNews Pro主题新手阅读,在编辑文章中临时添加的。
首先将文章编辑模式改到文本模式(HTML)。
文章导航目录文字写法:
- <div id=“directory”>
- <ul>
- <li><a href=“#1”>下载安装</a></li>
- <li><a href=“#2”>主题设置面板</a></li>
- <li><a href=“#3”>颜色风格选择</a></li>
- <li><a href=“#4”>首页布局设置</a></li>
- <li><a href=“#5”>CMS布局设置</a></li>
- <li><a href=“#6”>横向滚动图片模块</a></li>
- <li><a href=“#7”>顶部热点文章设置</a></li>
- <li><a href=“#8”>侧边推荐栏目设置</a></li>
- <li><a href=“#9”>特色图片功能</a></li>
- <li><a href=“#10”>导航菜单</a></li>
- </ul>
- </div>
外面套了一个div 标签方便之后CSS控制样式。
目录跳转到的文章内容写法:
- <p id=“1”>下载安装。</p>
- 此处添加正文内容,后面的相同。
- <p id=“2”>主题设置面板</p>
- <p id=“3”>颜色风格选择</p>
- <p id=“4”>首页布局设置</p>
- <p id=“5”>CMS布局设置</p>
- <p id=“6”>横向滚动图片模块</p>
- <p id=“7”>顶部热点文章设置</p>
- <p id=“8”>侧边推荐栏目设置</p>
- <p id=“9”>特色图片功能</p>
- <p id=“10”>导航菜单</p>
之后,在主题样式文件style.css最后加上:
- #directory{
- padding:0 0 0 4px;
- }
- #directory ul li{
- float:left;
- width:130px;
- background:url(../images/icon.png) no-repeat rightright;
- margin:1px;
- padding:0 0 0 5px;
- list-style:none;
- text-indent:0;
- border:1px solid #ccc;
- }
- #directory ul li a {
- color: #000;
- text-decoration: none;
- }
- #directory ul li a:hover {
- color: #0196e3;
- }
其中:width:130px; 数值可根据字数作适当调整。
此方法适合多级目录,但编辑操作比较麻烦。
方法二、通过正则表达式,自动提取带有H3标签的文字为目录索引,使用更为方便,但只适合单级目录。
首先在主题functions.php中添加:
- function article_index($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], ‘<h4 id=“title-‘.$num.'”>’.$title.'</h4>’, $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” );