简单实现WordPress文章置顶功能

还得说一下,WP_Query真是好东西。今天在WordPress爱好者论坛看到有人问如何实现多篇文章置顶的帖子。这下有了素材了。

对于实现WordPress文章的置顶,我的思想是将需要置顶的内容增加一些个共性,然后直接调用即可。简单点讲就是两个办法:一个是增加个分类,很多老外的主题都有用到 featured posts 这样的,肯定关注主题的朋友也都见到过,我在Bssn.Biz上面就是用这样的办法实现的,如果不想让该分类显示,可以在wp_list_categories()里用exclude将其拿掉;另外一个思路就是使用同样的一个tag,比如置顶,然后调用tag=置顶的帖子。这两个思路一样,感觉后者更方便一点,你可以轻松设置置顶一二三等等,这下功能要比dz的强大得多。

好了,那就直接说方法吧,先贴一个代码,然后再分析:

1
2
3
4
5
6
7
<?php $top = new WP_Query("tag='置顶'&showposts=5"); ?> 
<?php if ($top->have_posts()) : while ($top->have_posts()) : $top->the_post(); ?> 
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php $short=short; echo get_post_meta($post->ID, $short,$single = true); ?></a> 
<?php the_excerpt(); ?> 
<?php endwhile; ?> 
<?php endif; ?>

这个是调用tag=“置顶”的最新五篇帖子,显示的标题为自定义字段的“short”,链接的title=文章标题,另外还显示文章摘要(中文实现摘要建议使用Yskin’s wp-CJK-excerpt)。稍微搞得复杂了点,只是想说明它还能强悍一些!

有的人想用分类调用的方式,把 tag=置顶 改成 cat=你的分类ID 或者 category_name=目录名 就哦了。

好吧,置顶功能就这样实现了。对于自定义字段那里,那个东西你可以活用,比如把那里搞成<img src=”<?php $short=short; echo get_post_meta($post->ID, $short,$single = true); ?>” >,这样就能增加缩略图等等等等,随便想怎么搞都成。如果不想用自定义字段,一般来说可能用不着,那么就这么来:

<?php  $top = new WP_Query(“tag=’置顶’&showposts=5″); ?>
<?php if ($top->have_posts()) : while ($top->have_posts()) : $top->the_post(); ?>
<a href=”<?php the_permalink() ?>”><?php the_title(); ?></a><br>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php endif; ?>

这样置顶彻彻底底摆平了,下面有一个问题,就是置顶后,在最新文章中还会调用该篇文章,有的朋友可能不想看到这样的情况,那么怎么来呢?

让我们看看爱吃水煮鱼的Denis同学如何来讲解此问题:避免重复内容,这里讲得已经很全面了。

好了,大功告成。

复制代码的时候请注意下符号全半角的事情。

《简单实现WordPress文章置顶功能》有27个想法

  1. 你好博主,我现在已经在用wp3.2.1了,有很多方法可以实现置顶功能,我用了老外的方法,就是添加featured分类,但是有个问题,要是我这篇文章还设置另外个分类,也就是说两个分类,那么固定链接为 “/分类/日志名” 这样的结构就会有冲突,比如我还要设置第二个分类:usafilms,这样会显示为这样的固定链接 “/featured/日志名”,或者“/usafilms/日志名”,显然这个是不希望出现的。。请教博主如何解决这个。。

    回复

    Bssn Reply:

    @心叔漫画, 貌似一般来说是默认第一个分类。

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注