wordpress调用某分类文章或者某标签(支持分页)、提取第一张缩略图

如何在WordPress做一个页面模板?熟悉的朋友跳过,不太熟悉的朋友可以参照这篇文章建立一个。因为要筛选显示那些只是发布主题用的日志,所以在模板内的主循环代码部分

<?php while ( have_posts() ) : the_post() ?>

的前面添加筛选用的代码:

<?php
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('tag=idesign&showposts=' . $limit=15 . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>

红字部分是指定筛选标签为“idesign”的所有文章,如果你是通过分类来区别的话,把“tag=”换成“cat=分类ID号”则可。“15”就是指定读取的文章数。

到此是一个筛选功能的完成,至于需要在汇总页面中添加各个主题的图片,我希望它能自动读取该篇日志中的图片。因为发布主题的日志一定(一般情况下)带有主题的预览图,所以直接读取它并显示出来就行了。

在模板的主循环里,在你需要显示图片的位置中添加如下代码:

<img src="<?php echo catch_that_image() ?>" alt="" />

建议为该代码前后添加一个<div>的以方便控制它的样式,比如大小,是否浮动显示等。不要忘记的是,你必须在主题模板的function.php文件内同时添加上下面的功能代码,否则图片不会自动读取:

function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content,  $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$first_img = "在这里指定如果没有图片则显示的默认图片路径";
}
return $first_img;
}

这样,系统就能自动读取在该篇文章中的第一个图片,注意是第一个;所以请把需要作为缩略图显示的图片放在日志中的首位。

所有上面操作都完成后,在后台新建页面,选取刚建立的页面模板,也不用写什么内容的了,存档后访问该页面,就会显示那些需要显示的文章,还有文章内的第一个图片。

声明: 未经本站许可,谢绝转载!

8 个主题帖 其中:热心观众:0 个, 管理员:0 个

  1. 好东西,谢谢分类了!

    2012-07-24 04:50
  2. coderzeng
    0楼
    coderzeng:

    多谢分享

    2012-10-25 06:33
  3. 游客
    0楼
    游客:

    代码不对,试了根本不行!希望纠正

    2013-01-14 03:14
    • 亲,代码是正确的哦。你是不是那一部分不明白,没有写正确呢?

      2013-01-20 19:04
  4. 很好谢谢分享
    凌云博客求友链

    2013-04-21 07:24
    • 亲,www.1i3i.com 网络赚钱营销博客 求友链

      2013-05-11 17:07
  5. 大尾巴狼
    0楼
    大尾巴狼:

    http://www.0919yc.com/ 最近我在仿制这个站 这个站的产品展示这块 怎么实现 我试验了很多种方法 都不行 希望帮个忙 我的QQ291828889 希望留言

    2013-05-10 13:27
    • 你好,这个是需要在后台编辑文章的时候添加特色图片才会显示的。

      2013-06-06 06:42

抱歉,评论被关闭