我正在尝试检查摘录,如果它不存在,则显示内容,但进行了修剪。目前没有显示任何内容。
<?php if (has_excerpt() ): ?>
<p><?php echo get_the_excerpt(); ?></p>
<?php else: ?>
<p><?php echo wp_trim_words(get_the_content(), 25); ?></p>
<?php endif; ?>
然而,如果我只是做下面的事情,那么我就会看到内容。我的上述代码有问题吗?这是在WP\\U查询循环中运行的
<p><?php echo wp_trim_words(get_the_content(), 25); ?></p>
循环:
<?php $args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => 8,
\'category__not_in\' => 4
);
$latestPosts = new WP_Query( $args );
?>
<?php if ($latestPosts->have_posts() ): ?>
<ul>
<?php while ($latestPosts->have_posts() ): $latestPosts->the_post(); ?>
<li>
//The excerpt code etc. goes here
</li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
</ul>
<?php endif; ?>
最合适的回答,由SO网友:Sally CJ 整理而成
所以我们已经通过评论解决了这个问题,但我想我应该解释一下:
has_excerpt()
退货! empty( $post->post_excerpt )
如果帖子有自定义/手动摘录,那么如果函数在应该为false时返回true,那么很可能是因为数据库中摘录的长度为>;0,例如,当值为空白时-empty( \' \' )
= 错误。(但请注意empty( \'0\' )
或empty( 0 )
是真的)
如果是这样的话,那么你应该修复post_excerpt
值,以便函数返回预期值。
但正如我在评论中所说的,我不知道为什么该摘录是用所有这些空格导入的,所以我只能猜测它们是在导出过程中添加的,或者是在导入过程中通过过滤器添加的。
无论如何,我希望这个答案有帮助!:)