摘要
可能有很多童鞋对HotNews Pro 2.7主题使用说明上面的目录导航感兴趣,点击上面的目录文字可以快速跳转到相关内容,适合长文章或者有特殊需求的文章使用。提供两种实现方法: 方法一、为了方便HotNews Pro主题新手阅读,在编辑文章中临时添加的。此方法适合多级目录,但编辑操作比较麻烦。 方法二、通过正则表达式,自动提取带有H3标签的文字为目录索引,使用更为方便……
可能有很多童鞋对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最后加上:
#direct ory{
padding :0 0 0 4px ;
}
#direct ory ul li{
float : left ;
width : 130px ;
background : url (../images/ icon .png) no-repeat right right ;
margin : 1px ;
padding :0 0 0 5px ;
list-style : none ;
text-indent :0;
border : 1px solid #ccc ;
}
#direct ory ul li a {
color : #000 ;
text-decoration : none ;
}
#direct ory 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” );