精通Wordpress主题-5: 直接调用最新文章/随机文章/最新留言
在查看一些wordpress主题介绍的时候,你会发现有”不需要插件支持”这个说明,有的是功能不多,确实不需要什么插件,有的是直接使用Wordpress代码就实现一些强大的功能。诚然,对于一个主题设计者来说,能用简单的几行代码就实现一个体积庞大的插件才能实现的功能,是件幸福的事情。
在帕兰的精通wordpress主题系列里面,之前已经为你介绍过下面一些技巧:
- 精通Wordpress主题-1: 修改特定日志的样式和内容
- 精通Wordpress主题-2: 在Wordpress第一篇日志中插入广告的方法
- 精通Wordpress主题-3: 为不同的分类日志设置不同的样式
- 精通Wordpress主题-4: 如何安全的调用Wordpress插件模板代码
今天我们来看一下,如何使用Wordpress模板代码直接实现一些常用的列表:最新文章,随机文章和最新留言。
1. 最新文章
Wordpress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下:
<?php get_archives('postbypost', 10); ?> (显示10篇最新更新文章)
或
<?php wp_get_archives('type=postbypost&limit=20&format=custom'); ?>
后面这个代码显示你博客中最新的20篇文章,其中format=custom这里主要用来自定义这份文章列表的显示样式。具体的参数和使用方法你可以参考官方的使用说明- wp_get_archvies。(fromat=custom也可以不要,默认以UL列表显示文章标题。)
补充: 通过WP的query_posts()函数也能调用最新文章列表, 虽然代码会比较多一点,但可以更好的控制Loop的显示,比如你可以设置是否显示摘要。具体的使用方法也可以查看官方的说明。
2. 随机文章
<?php
$rand_posts = get_posts('numberposts=10&orderby=rand');
foreach( $rand_posts as $post ) :
?>
<!--下面是你想自定义的Loop-->
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
补充: 上面提到的query_posts同样可以生成随机文章列表。
3. 最新留言
下面是我之前在一个Wordpress主题中代到的最新留言代码,具体也记不得是哪个主题了。该代码直接调用数据库显示一份最新留言。其中LIMIT 10限制留言显示数量。绿色部份则是每条留言的输出样式。
<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,30) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC
LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_html;
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author)
.":" . " <a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"on " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a></li>";
}
$output .= $post_HTML;
echo $output;?>
注:具体的演示效果可以查看本站的侧边栏。



10:20 下午
收下最新留言,呵呵,但有个疑问:最新留言字数超过里面的设置,后面加上省略号,怎么实现?谢谢,如果可以的话,可以发邮件给我:)
9:17 上午
非常好的步骤,谢谢你的提供!
1:56 下午
这好像就是评论吧….不是留言哦!
8:14 下午
谢谢,正好不少内容是我所需要的。
8:21 上午
1:42 下午
4:17 下午
这些都要查询数据库 其实widgets最简单,制作也不难,修改functions.php 修改 sidebar.php 很容易就打造了。
8:06 下午
如果要稍微美化,比如添加个标题怎么办?否则就那么显示在那很不好看。
11:01 下午
请问这个页面里面的代码高亮是如何实现的?
很漂亮啊
2:23 上午
7:08 下午
谢谢你的关于wordpress的文章,让我实现了很多的功能~!
4:29 下午
2. 随机文章 代码放在SINGLE POST.PHP 文件中, 则此文的评论就不显示了 怎么办
方便回邮件指点一下 87396100@qq.com
1:43 下午
受用!借鉴!
2:19 上午
3:55 下午
不错,学习了,。。
8:57 下午
使用了一下,效果不错.只不过那个”最新评论”的代码太长了,不知对速度是否有影响?
10:02 下午
正在找这个代码,先试试,谢谢!
1:09 下午
嗯。非常感谢。正在寻找。。赞!
2:36 下午
不错不错,比插件好,有没有相关文章的代码
9:54 上午
你太好太强大了,总是让我找到需要的东西。
12:07 上午
大侠,我又来了,想留言但是找不到地方就写这里了。我新学做了一个模板,但是怎么不能把comments.php调出来,我在single页面添加了 但是什么也没有,我漏掉什么地方了?
3:50 下午
4:36 上午
12:04 上午
新手学习中
9:33 上午
这个非常的需要,如果能再全一些就好
9:33 上午
需要相关文章的调用 。这里面好像没有
10:50 上午
12:55 下午
1:27 下午
11:02 上午
11:16 上午
12:00 下午
12:45 下午
2:39 下午
I guess that to get the loans from banks you ought to have a firm reason. But, one time I’ve received a bank loan, just because I wanted to buy a house.
6:32 上午
6:34 上午
8:07 上午