效果见:HzlzH的 文章归档 页面 (本站新增的页面)
描述:输出全站所有文章标题及链接URL,按发表的日期(按月)归档,无需插件,使用WP原生函数,可加入 jQuery 滑动展开效果
用途:
1、方便查看旧文章,便于写作时引用链接;
2、利于SEO,要知道sitemap就是这个道理差不多;
3、这货博客得有,这个真得有;
步骤:
1、桌面新建名为 my-archive.php 文件,写入以下代码,申明这是一个wordpress模板文件,以前说过模板的用法
<?php
/*
Template Name: my-archive
*/
?>
<span id="control" style="cursor:pointer;color:#666666;text-shadow:0 0 2px #66CD00;">全部展开/收起</span>
<div class="my-archive">
<?php
$previous_year = $year = 0;
$previous_month = $month = 0;
$ul_open = false;
$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
?>
<?php foreach($myposts as $post) : ?>
<?php
setup_postdata($post);
$year = mysql2date('Y', $post->post_date);
$month = mysql2date('n', $post->post_date);
$day = mysql2date('j', $post->post_date);
?>
<?php if($year != $previous_year || $month != $previous_month) : ?>
<?php if($ul_open == true) : ?>
</ul>
<?php endif; ?>
<h3><?php the_time('Y年 m月'); ?></h3>
<ul>
<?php $ul_open = true; ?>
<?php endif; ?>
<?php $previous_year = $year; $previous_month = $month; ?>
<li><span><?php the_time('m-d'); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span><span> <?php if(function_exists('the_views')) { the_views(); } ?></span>
<?php comments_popup_link( __( '评论 (0)', 'farlee' ), __( '评论 (1)', 'farlee' ), __( '评论 (%)', 'farlee' ), 'comments-link', __('评论关闭', 'farlee')); ?></li>
<?php endforeach; ?>
</ul>
</div>
2、上传文件到 wordpress 使用的主题目录下,然后去后台新建“页面”,会发现有选择模板的选项:选择–>my-archive
3、写个页面名字,直接发表,不需要正文内容。
说明:上面的是核心代码,要想得到更好的效果,需要再美化下 CSS 和 使用 jQuery等,
由于个人的主题模板不一样,固share了我的 模板文件,感兴趣的,自己参考吧!
直接打开源码–>【my-archive.php.txt】
懒得 DIY的同学,可以使用这个插件轻松完成归档页面制作, wp-easyarchives ,
话说,hzlzh是尽量不用插件的,少一个是一个!呵呵
- Pingback on 2010/07/16/ 00:53

插件我才卸载了,去试下你这个
@Dianso: 呵呵,那个插件我没用过,看别人用了,就觉得可以直接实现,于是折腾了下
感觉还是点开一个其他的合上 效果会好一些
@阿邙: 这个想法不错哦,我去实现。一句代码的事
@HzlzH: 因为之前我写过根据插件改成刚讲的效果的。 用了以后感觉更人性化些呵呵
@阿邙: 嗯,我去看了你的归档页,那个效果不错,大家都是不喜欢插件的主。。。
@HzlzH: 嘿嘿 插件是给懒人用的 其实不用插件是给更更懒的人用的
直接写主题里 省得以后麻烦
@阿邙: 很多人主题里有一堆现成模板,可不见用,这就是杯具啊。。
我想弄一个页面 从google reader导出的订阅列表里获取网站名和链接 不知道该怎么实现呢
@阿邙: 光导出名和 URL?不是RSS聚合吗,GR可以导出的
自力兄真是高产, 顶一个, 顺便改个颜色抢走咯
@Z日志: 写的东西少了,越发的忙。。。
@HzlzH: 没听明白,能说的详细一点不
@Z日志: 越发的忙。。。写的东西少了,刚刚好像思维倒装了,哈哈 这样理解
用上了,不过貌似代码还存在一些问题哦,我用的是底下txt的代码,只改动了三个颜色,问题出在页面载入完成后月份栏的数量变少,而点击最后一个月份才出现更老的一个月份..兄台不妨来 实地考察一下…
不過發現雖然可以點擊展開舊文的年月份,但是卻沒有點擊收起的效果,不知道是否是個小 bug 呢?
總之,很多謝你分享這個技術,以後會用在我新寫的主題上
@Carrie: 呵呵,你刚好遇到我在改JS代码的时候了,现在你再试试,没问题的。
@HzlzH: 那我再去試試看
@Carrie: 现在是新的效果,就是2楼阿邙说的那种,展开一个月份的同事,收缩其他月份
,好困啊。。。good night
@HzlzH: 這效果很棒,所以我超喜歡的,才會想加在下個新寫的主題裡,阿邙就是很厲害的折騰者,你也很強,每次逛你們的博客都覺得自己要再加強的地方太多太多啊~
想睡就快去睡吧,我也要關電腦了,晚安
@Carrie: 没想到这么晚你也还在线,早点休息吧,晚安
@HzlzH: 你也很晚啊~呵,我等等也要窩回床上去了,晚安
我用的插件。。。。没看到你这文章前我都忘了我博客上还有这么个页面呢。。。
这是我看到的第三个折腾非插件日志归档的了,不过你是代码最最精简的一个,很好!
动态效果不错啊
要是后面加上多少条评论的 是不是更好
你这不是jQ吗?怎么看不到代码
@海天: 额 原来jQ在下面 呵呵没注意~
感觉那个页面加载 非常的慢..不知道是不是我的问题.
@mice: 我加载还好啦,毕竟是所有文章,慢点是应该的
@HzlzH: 我表示是侧边栏的影响,我那也是所有文章啊,但是没这么慢耶..还有那个页面错位了..去看看吧
真是个好东西.不过掩累了.也不想再去整了.自己早已安装了插件.
@ptubuntu: 插件嘛,也好就是有点累赘,为了一个页面装个插件。。我是不会
省插件的好代码
代码有错误
里面少了一个
@zwwooooo: 我差了下生成的页面,貌似标签是有错误,多谢提醒!
代码有错误
<?php $ul_open = true; ?>
<?php endif; ?>
里面少了一个</ul>
@zwwooooo: 这里没有少标签,如果加上会出错哟。我更新了代码的缩进,看得更清晰点。可能各自的主题不一样吧造成的
@HzlzH: 我直接copy后出现
@zwwooooo: 嗯 应该是不同主题之间 footer 和 header 代码有区别,我的不是闭合的,content 部分也不闭合就正好了
@HzlzH: 囧~我copy时你这是这样的
<?php if($year != $previous_year || $month != $previous_month) : ?>
<?php if($ul_open == true) : ?>
<?php endif; ?>
缺少</ul>
现在你的文章又有了
@zwwooooo: 在你说后我修改了好多地方,而且重新编辑了。
你看下你14楼说的是:
$ul_open = true 这一行
这一行前后不少什么哟。
你刚刚又说 $ul_open == true 这一行,我糊涂了
一个是双等号,可能我看错了吧。晚上回去再优化下排版,方便大家
@HzlzH: 我是copy回去后就出现排版错误,细细找一下就是少了一个闭合,不知道我copy后期间你有没有修改代码,无所谓啦,反正能搞定就行了
@zwwooooo: 嗯,我修改了的,你一提出来我就去查看,修改格式。
少一个闭合才是对的,只有这样最后才能完全闭合,呵呵
博主自己写的码吗?高手膜拜中。。。
哇 好好跟你们学学怎么折腾wp哦,我博客太难看了
比我自己折腾的在算法上好多了~
这段代码值得学习一下。
很久没来了,博主近来可好?
哈哈、又是技术 不懂 呜呜
研究一下 mysql2date 函数 ~
@小邪: 就是格式转换的作用
@HzlzH: 嘎嘎,那 get_posts 哩?
@小邪: 这玩意功能居多,看你传什么参数进去了,就能得到你想要的类别文章输出
准备换到WP,学习哈先~~~~
换字体了?这是雅黑字体吧?
@Dianso: 是啊,还是雅黑看着最舒坦
貌似有点问题的啊
这样都不能解决,啊?
呵呵,好好学习,好好折腾!!
博主你好!我是一个wp的新手!

刚才使用了您的这个模板,有个问题就是打开存档页面后发现整个博客都往左移了
请问怎么修改您的模板可以使到存档页面跟其他页面一样也是整个框架居中的?
望指教!!
@chenchen: 呵呵 见你已经解决了,nice~
@HzlzH:
还是感谢博主提供的代码!
HzlzH你好,我用了,貌似展开与收起不起作用啊,求帮助!
@Dawnson: 我文章最后附上 模板文件,里面结尾有jQuery 的代码,只要跟我一样肯定能用,不要忘了加载 jQuery库
@HzlzH: 嗯,绝对是我没有加载那个库,正在找怎么加呢,没了解过这些东西!
@HzlzH: 好了,谢谢哦!
为什么我有的中文显示不了~~~
效果不错。我是wp新手,能不能稍微具体介绍下css怎么美化。用了之后页边距等于0了,而且不能加sidebar(会直接出现在页面最下面)。
http://sharewei.com/archives/
谢谢了~
请问23行的UL是怎么回事?
@西门: 这个是笔误,已经更正,是多余的
@HzlzH: 既然是多余的,我删掉之后,里面的UL就没后面的了,不信你试试。可惜看不懂PHP代码呀!
所以我还是没删,有三个UL。
@西门: 刚刚仔细看了下,上次没时间看,是判断语句中的 /ul 这个闭合的标签是不能去掉的。看代码不要顺序着看,这里不能去掉。
杯具啊,IE提示出错,没有动态效果,chrome下也没有动态效果,就是说默认全部是展开的,不能闭合,点击 全部展开/收起 不起作用呢?还要改别的地方么?还是说因为主题的问题???
呜啊 那个模板文件的地址 可能因为网站搬家修改数据库弄错了。应该是https://dl.dropbox.com/u/5571217/hzlzh.com-share/wordpress/php/my-archive.php.txt
@SAKU: 你答对了,已经把左右链接批量fix了