Php 对非对象调用成员函数have_posts()
我一直在尝试在一个分类页面的网格视图中显示我网站的帖子。为此,我实现了以下代码:Php 对非对象调用成员函数have_posts(),php,wordpress,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_p
<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); ?>&w=390&h=216&zc=1&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"; ?>&w=390&h=216&zc=1&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\u html/wp content/themes/nepaljapan/content-category.php中的非对象调用成员函数have_posts()
我的代码第15行是
<?php while($block1Featured->have_posts()): $block1Featured->the_post(); ?>
有什么问题?我真的做对了吗??
非常困惑。
请帮帮我
提前感谢您您的自定义查询有一些问题。您可以使用在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; ?>
执行调试,在while循环之前添加:如果(!is_object($block1Featured)){var_dump($block1Featured);die()}
如果没有产生任何结果,请检查每个迭代$block1Featured不是对象?echo gettype($block1Featured)
返回什么?如何编译对象$block1Featured?只需使用while(have_posts()):the_post();它不是OOP,而是过程性的,因此代码是正确的,$block1Featured不是对象。另外:have_posts()可以作为对象的方法访问,但如果您从标准循环中获得自定义参数,则需要实例化该对象。您应该有$block1Featured=new WP_Query();在某个地方,传递自定义查询。