文章目录[隐藏]
这几天在进行主题的 调整二次开发,到了归档页面 archives.php模板的调整环节,因为归档页面是以时间顺序排列的,所以想到了CSS来布局,构建一个时间轴的样式,但一想文章太多,全部罗列的话页面会很长,于是想到了用加载js,但考虑到会影响速度,最终放弃了,就来一个简单的可伸缩的样式,点击月份可以展开,再点击可以回来。
其实以前曾经学习过一个样式 Css打造伸缩时间轴样式的WordPress归档页面archive.php
1、创建归档函数到 functions.php 里
其实你可以单独新建一个archives.php文件,把以下的代码复制进去,然后在 functions.php 引入文件
/** * 引入归档函数 */ require get_template_directory() . 'archives.php';
或者直接复制以下代码到functions.php 里,代码太长,点击这里下载 原代码
2、创建page-archives.php页面模板
页面内容可以简单以下,主要是在这个页面里要调用函数自定义的归档函数zww_archives_list();
<?php /** * Template Name:Archives */ get_header(); ?> <div><?php zww_archives_list(); ?> </div> <?php get_footer(); ?>
登陆wordpress后台-页面-新建页面-然后新建页面(如叫:归档),选择模版为 Archives
3、给主题加载 jQuery 库,没有加载的,把下面这句扔到 functions.php 里面就行了。
wp_enqueue_script('jquery');
4、jQuery 代码:
如果你的主题引入了 jQuery 库,那么下面这段代码你完全可以放到page-archives.php里
<script type="text/javascript"> (function ($, window) { $(function() { var $a = $('#archives'), $m = $('.al_mon', $a), $l = $('.al_post_list', $a), $l_f = $('.al_post_list:first', $a); $l.hide(); $l_f.show(); $m.css('cursor', 's-resize').on('click', function(){ $(this).next().slideToggle(400); }); var animate = function(index, status, s) { if (index > $l.length) { return; } if (status == 'up') { $l.eq(index).slideUp(s, function() { animate(index+1, status, (s-10<1)?0:s-10); }); } else { $l.eq(index).slideDown(s, function() { animate(index+1, status, (s-10<1)?0:s-10); }); } }; $('#al_expand_collapse').on('click', function(e){ e.preventDefault(); if ( $(this).data('s') ) { $(this).data('s', ''); animate(0, 'up', 100); } else { $(this).data('s', 1); animate(0, 'down', 100); } }); }); })(jQuery, window); </script>
也可以直接打开 header.php 并找到 ,在其下面加上
<script type="text/javascript">上面那段 jQuery 代码</script>
4、Css参考
这样即使成功的话也非常不好看,剩下的就是根据自己的布局加入CSS了,你要好好的研究zww_archives_list() 里面的Html结构,然后编写自己喜欢的CSS,这里分享一下我的css.
/* * ---------------文章归档页面样式-------------------- */ #main-archivest{;margin:20px 0;} .m-title{text-align:center;border-bottom:solid 1px #ccc;} .al_mon{font-weight:bold;} #archives ul li {list-style-type:none;} #archives ul >li{padding:0 0 8px 5px;border-left:solid 1px #ccc;background-image:url(li.png); padding-left:20px; background-repeat:no-repeat;} #archives ul>li>ul{margin:0;padding:0;} #archives ul>li>ul>li{list-style-type:none;background-image:url(li.gif); padding-left:20px;background-repeat:no-repeat; border-left:dashed 1px #ccc;}
其实你可以完全复制,稍加修改。
5、小结
1、 因为查询度有点大,所以有加数据库缓存,只在文章发表/修改时才会更新缓存数据,所以测试时,可以特意去后台点“快速编辑”文章然后点更新就可以更新缓存数据。
2、 参考原文:http://zww.me/
3、 本站效果预览 http://www.511yj.com/archives
4、 遇到问题留言交流。