Has_excerpt()在wp_Query中不起作用

时间:2020-07-02 作者:Iggy\'s Pop

我正在尝试检查摘录,如果它不存在,则显示内容,但进行了修剪。目前没有显示任何内容。

<?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; ?>

2 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

所以我们已经通过评论解决了这个问题,但我想我应该解释一下:

has_excerpt() 退货! empty( $post->post_excerpt ) 如果帖子有自定义/手动摘录,那么如果函数在应该为false时返回true,那么很可能是因为数据库中摘录的长度为>;0,例如,当值为空白时-empty( \' \' ) = 错误。(但请注意empty( \'0\' )empty( 0 ) 是真的)

如果是这样的话,那么你应该修复post_excerpt 值,以便函数返回预期值。

但正如我在评论中所说的,我不知道为什么该摘录是用所有这些空格导入的,所以我只能猜测它们是在导出过程中添加的,或者是在导入过程中通过过滤器添加的。

无论如何,我希望这个答案有帮助!:)

SO网友:Ben

伊吉!

对于WP函数,通常说get\\ubefore函数表示调用是在循环外部进行的,因此需要在括号内声明对象ID,如下所示:

get_the_excerpt( $post->ID )
如果在对象循环中使用此函数,则只需调用:

the_excerpt()
它不需要对象ID,因为它已经构成了查询。

相关推荐

在循环内具有循环的自定义Loop.php

需要一些指导。我正在为博客创建一个自定义网格。例如,区块3和5更大,等等。。。但为了让这件事发生在其他事情之后:我需要在一个区域有两个博客,所以在那个街区会有两个。有人做过类似的事情吗?谁可以分享?附件是我的代码。<?php while ( have_posts() ) : the_post(); ?> <?php if ($wp_query->current_post == 2): ?>