WordPress无插件实现文章目录功能 可多级目录
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

蜗牛在前面文章中有分享过Easy Table of Contents创建可以实现WordPress程序网站文章、页面内容目录功能,就好比我们看到的书目录一样,用户可以较为方便且快速的检索到需要的内容位置。在前面有较为完整的测试到这个插件而且还是相当好用且功能强大的。
但是,从网上搜索到很多关于文章目录功能的文章,其实对于这个功能使用一个插件,而且插件里文章还不少,对于可能存在的安全问题或者是在添加插件后我们可以看到页面增加的调用脚本、样式还是不少的,使得为了加这一个功能网站变得臃肿很多。有点强迫症的我肯定不允许这样的问题存在,要么就不去使用。这里蜗牛再去试试上网其他网友提供的无插件版本。
这里蜗牛找到来自露兜博主的文章(https://www.ludou.org/wordpress-content-index-plugin.html),觉得这个功能还是不错的,添加到博客中发现还是比较美观,虽然功能不如插件方式自动化和强大,但是基本的目录功能还是够用的。
文章目录
隐藏
第一、单级目录脚本
第二、多级目录脚本
第三、CSS样式定义
第一、单级目录脚本function article_index($content) {
$matches = array();
$ul_li = \\’\\’;
$r = \\”/<h3>([^<]+)<\\\\/h3>/im\\”;
if(is_singular() && preg_match_all($r, $content, $matches)) {
foreach($matches[1] as $num => $title) {
$title = trim(strip_tags($title));
$content = str_replace($matches[0][$num], \\\'<h3 id=\\”title-\\’.$num.\\’\\”>\\’.$title.\\\'</h3>\\’, $content);
$ul_li .= \\\'<li><a h=\\”#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) {
$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 h=\\”#title-\\’.$key.\\’\\” 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\\’ );
第一个脚本来自露兜自己发布的,第二个来自网友的改良可以多级目录,一般网站直接单级也是够用的。我们可以将脚本添加到当前主题Functions.php文件中。
第三、CSS样式定义#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;
}
然后根据实际页面,需要调整CSS样式,不同网站自带CSS可能有冲突,我们需要再微调。
这样,我们可以实现无插件使得WordPress网站具有内容目录向导的功能。
猜你可能想看的VPS
- RackNerd→$12.71 年 KVM-512MB 11GB 2.5全球[VPS测评]
- DedeCMS 中 dede:channel 标签调用栏目简介 desc全球[VPS测评]
- 疯狂猜成语 图猜成语一个人在摘树叶地上还有一根树枝是什么成语?全球[VPS测评]
- 无忧云¥36.12 月 1 核 1G 内存 50G 硬盘 1Mbps 深香港VPS[主机]
- 疯狂猜成语 图猜成语甄嬛头上有一滴汗旁边写着后宫甄嬛传是什么成语?全球[VPS测评]
- 补货通知 搬瓦工 CN2 GIA 线路$46.87 年机器补货了 速度抢全球[VPS测评]
- web-project→£30 年 2GB 内存 20GB SSD 空间虚拟空间(主机)
- ShockHosting 五折 KVM 主机大硬盘 支持支付宝微信付款全球[VPS测评]
- TripodCloud→圣何塞 CN2 GIA 线路 KVM 年付 38全球[VPS测评]
- VPSPlayer 香港 NTT 机房双向 CN2 高配 VPS 促销,香港VPS[主机]
- HostYun 老品牌升级,圣何塞双程 GIA VPS 限时九折,100全球[VPS测评]
- Internet Brothers→$18 月 1G 内存 30GB S虚拟空间(主机)
- KVMLA 新加坡&日本独立服务器 75 折 首月再返 300 元 充 独立服务器[U]
- WordPress插件:Add-Document-Pages为你的网站增全球[VPS测评]
- contabo新加坡机房测评,晚高峰丢包感人,三网绕道美国美国VPS[主机]
- 篱落主机 香港独立IP虚拟主机 年付90元 VPS 香港 BGP 多线机独立服务器[U]
- 篱落主机 香港多线BGP VPS 黑五特惠 全场5折终身优惠码香港VPS[主机]
- GigsGigsCloud新加坡大陆优化VPS上架全球[VPS测评]
- UOvZ → 2G 内存 20G 储存 500G流量 100M带宽 徐州全球[VPS测评]
- HostUS → 荷兰阿姆斯特丹 → 1Core 512M 15G SS全球[VPS测评]
- 2023年 IDC市场结构和方向的深度分析全球[VPS测评]
- 20个温暖心灵的问题,抖音,朋友圈都可以拿去发。全球[VPS测评]
- 什么是Bootstrap?全球[VPS测评]
- 啤啤云怎么样?香港CN2线路vps,有香港安畅机房,全部9折,38.7元香港VPS[主机]
- 六一云:香港CN2/洛杉矶高防85折优惠,CDN半年优惠,充值返利送水杯香港VPS[主机]
- tudcloud,香港vps终身八折$7.76/月起,1核1G内存,香港香港VPS[主机]
- 速云互联:香港/美国CN2 GIA线路/BGP/10Mbps/全场八折,美国VPS[主机]
- ExCloud:1核256M存/8GB SSD空间/100GB流量/OV虚拟空间(主机)
- UCloud:全球31个机房全球云服务器大促,香港2核4G低至485元/日本VPS[主机]
- 跨境电商拔节生长关键期,宁波政协委员月谈会精准助力!全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-142777.html











