如何在相关帖子中显示图片?

时间:2012-08-24 作者:Stickers

我想为每个相关帖子显示一个图像。注意,这些是内联图像,不是来自post thumbnails.

我需要的是:

如果帖子只有图像,请显示它

<?php
$categories = get_the_category($post->ID);
if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
    $args=array(
        \'category__in\' => $category_ids,
        \'post__not_in\' => array($post->ID),
        \'showposts\'=> 5, // Number of related posts that will be shown.
        \'caller_get_posts\'=> 1
    );
    $my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
        echo \'<h3>Related Posts</h3>\';
        echo \'<ul>\';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>
            <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
        <?php
        }
        echo \'</ul>\';
    }
}
wp_reset_query(); ?>

1 个回复
最合适的回答,由SO网友:OriginalEXE 整理而成

这很简单:

<?php
$categories = get_the_category($post->ID);
if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
   $args=array(
    \'category__in\' => $category_ids,
    \'post__not_in\' => array($post->ID),
    \'showposts\'=> 5, // Number of related posts that will be shown.
    \'caller_get_posts\'=> 1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
    echo \'<h3>Related Posts</h3>\';
    echo \'<ul>\';
    while ($my_query->have_posts()) {
        $my_query->the_post();
    ?>
        <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a><?php echo catch_that_image() ?></li>
    <?php
    }
    echo \'</ul>\';
}
}
wp_reset_query(); ?>
在函数中。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 = "/images/default.jpg";
  }
  return $first_img;
}
当然,替换默认图像路径,并根据需要设置输出样式。

代码取自:http://www.wprecipes.com/how-to-get-the-first-image-from-the-post-and-display-it

结束

相关推荐

resize images not crop

正在寻找一种将上传的图像(wordpress上所有形式的图像上传)调整到精确尺寸的方法,但是not to crop. 我会悬赏回答这个问题,因为我相信这对很多人都有帮助。理想的解决方案必须是作为插件,并使用媒体设置页面(options-Media.php/Thumbnail,Medium和Large)上已经指定的图像尺寸我知道理想有时无法实现,所以最接近的答案将是公认的答案