WP_QUERY用于自定义小部件时返回错误

时间:2014-07-15 作者:NielsPilon

我正在创建我的第一个插件/小部件,它应该显示一个非常简单的循环,其中只包含一个自定义字段(图像)

我一直在测试这个循环,但在我的主题中没有出现任何问题,但当我将这个循环放在插件文件中时,它会生成一个致命错误,阻止插件被激活。我真的不明白为什么会发生这种情况,因为循环在主题中没有任何问题。

这是我正在使用的循环:

<?php $args = array(
    \'posts_per_page\' => 3,
    \'post_type\' => \'sponsors\',
    \'orderby\' => \'rand\',
);
$the_query = new WP_Query( $args ); ?>

<?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post();  ?>
<li>
<?php 
$image = get_field(\'sponsor\');
if( !empty($image) ): ?>
<img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />
<?php endif; ?>
</li>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
这是激活插件时显示的致命错误:

分析错误:语法错误,意外的T\\u ENCAPSED\\u和\\u空格,应为T\\u字符串或T\\u变量或T\\u NUM\\u字符串

我已经通过使用PHP代码小部件插件以另一种方式解决了这个问题,但我想知道为什么会出现这个错误。如果我需要放置完整的插件代码,请告诉我。

1 个回复
SO网友:HU ist Sebastian

更新:好的,看看错误,应该很容易。只需在最后一个“?>”之后删除插件文件末尾的所有空格或空行即可。

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

是否复制了(&A);在此处粘贴代码?因为你似乎有一些空格不应该出现在这行中

<?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query-    >the_post();  ?>
如果删除空白(如下所示:

<?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post();  ?>
),它应该会起作用。

P、 S:别忘了使用

<?php wp_reset_postdata(); ?>

<?php endwhile; ?>
否则它可能会破坏页面的其余部分^^

快乐编码,Kuchenundkakao

结束

相关推荐

The loop does not show users

我想展示所有帖子​​作者。代码作者。php<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php if( get_post_type() == \'post\' ) {?> <?php } if( get_post_type() == \'post-type\' ) {?> <?php } else; endwhile;?>