在非对象上调用成员函数have_posts()

时间:2014-06-04 10:53:48

标签: php wordpress

我一直试图在其中一个类别页面的网格视图中显示我的网站的帖子。为此,我实现了以下代码:

<div class="row-fluid">
<div class="span6 featured-block">
<?php while($block1Featured->have_posts()): $block1Featured->the_post(); ?>

<a class="featured_image" href="<?php the_permalink();?> "target="_blank">

 <?php if ((function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { 

   $image_id = get_post_thumbnail_id(); 

   $image_url = wp_get_attachment_image_src($image_id,'large');

   $image_url = $image_url[0];

   if(!@getimagesize($image_url)){

   $image_url = "/wp-content/uploads/2014/02/logo2.jpg";

   } 

   $blogurl = get_bloginfo('url'); 

   $image_url = str_replace($blogurl, '', $image_url);

  ?>

   <img src="<?php echo bloginfo('template_url'); ?>/thumb.php?src=<?php echo   ($image_url); ?>&amp;w=390&amp;h=216&amp;zc=1&amp;q=100" alt="<?php echo the_title(); ?>" />

 <?php }

 else { ?> 


   <img src="<?php echo bloginfo('template_url'); ?>/thumb.php?src=<?php echo "http://www.nepaljapan.com/wp-content/uploads/2014/02/logo2.jpg"; ?>&amp;w=390&amp;h=216&amp;zc=1&amp;q=100" alt="<?php echo the_title(); ?>" />


 <?php }?>
</a>
<a href="<?php the_permalink();?>" target="_blank">
<h2><?php the_title(); ?></h2></a>
<p><?php echo excerpt(37); ?>
<?php endwhile; ?>
</div>
</div>

但是我遇到了这段代码的问题。 这给出了错误

致命错误:在第15行的/home/npjp/public_html/wp-content/themes/nepaljapan/content-category.php中的非对象上调用成员函数have_posts()

我的代码中的第15行是

<?php while($block1Featured->have_posts()): $block1Featured->the_post(); ?>

有什么问题?我真的这样做吗? 很困惑。 请帮帮我。

提前谢谢

1 个答案:

答案 0 :(得分:1)

您的自定义查询存在一些问题。您可以使用this guid在wordpress中编写自定义查询:

<?php
$block1Featured= new WP_Query( 'category_name=staff+news' );

if ( $block1Featured->have_posts() ) : ?>
    <!-- the loop -->
        <?php while ( $block1Featured->have_posts() ) : $block1Featured->the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
    <!-- end of the loop -->
    <!-- pagination here -->
    <?php wp_reset_postdata(); ?>
<?php else:  ?>
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>