摘录未显示在"最新帖子"区域。为什么?

时间:2015-11-06 20:59:51

标签: php wordpress wordpress-theming

我正在制作一个wordpress主题,该主题在主页上的主要内容下有一个"最新帖子"类似区域。自定义主题基于Adamos主题。到目前为止,我在打印主要内容后使用了这个:

<?php

    wp_reset_query();

    $args = array( 'numberposts' => '2' );

    $recent_posts = wp_get_recent_posts($args);

    foreach( $recent_posts as $recent ){

        setup_postdata($recent);

        ?>

        <div class="index_recent_post">

            <div class="index_recent_title">

                <h3><?php echo '<a href="' . get_permalink($recent["ID"]) . '">' .   $recent["post_title"].'</a>'; ?></h3>

            </div>

            <?php

                if ( has_post_thumbnail($recent["ID"]) ) {

                    echo get_the_post_thumbnail($recent["ID"], 'frontpage-thumbnail');

                }

                echo '<p>' . get_the_excerpt($recent["ID"]) . '</p>';


                echo '<a href="' . get_permalink($recent["ID"]) . '" class="recent_link">MORE</a>';

            ?>

        </div>

        <?php

    }

    wp_reset_query();

    ?>

然而,虽然最新帖子(标题,缩略图,链接)的每个项目都完美无缺,但摘录却没有:它显示为空。如果我删除wp_reset_query()setup_postdata()行,则会显示MAIN帖子的摘录,但似乎没有办法让它显示最新的摘录,即使最新帖子的其他信息都能完美展现出来。

摘录也不会显示,无论帖子是否有自定义摘录,所以问题不在于寻找自定义摘录而不是找到它的功能。我可以通过$recent["post_excerpt"]获取自定义摘录,但只有自定义摘录才能获得自定义摘录 - 如果自定义内容不存在,则无法根据内容构建自定义摘录,这不太理想。

有没有人处理过这个问题,你能帮我找到问题所在吗?

1 个答案:

答案 0 :(得分:3)

你可以使用下面的代码。我在我的本地服务器上测试了这段代码。它运行正常。

wp_reset_query();

$args = array( 'numberposts' => '2' );

$recent_posts = wp_get_recent_posts($args);

foreach( $recent_posts as $recent ){

    setup_postdata($recent);

    ?>

    <div class="index_recent_post">

        <div class="index_recent_title">

            <h3><?php echo '<a href="' . get_permalink($recent["ID"]) . '">' .   $recent["post_title"].'</a>'; ?></h3>

        </div>

        <?php

            if ( has_post_thumbnail($recent["ID"]) ) {

                echo get_the_post_thumbnail($recent["ID"], 'frontpage-thumbnail');

            }

            //echo '<p>' . get_the_excerpt($recent["ID"]) . '</p>';
            $content= $recent["post_content"];

            $excerpt = wp_trim_words( $content, $num_words = 55, $more = null ); 
            echo $excerpt;


            echo '<a href="' . get_permalink($recent["ID"]) . '" class="recent_link">MORE</a>';

        ?>

    </div>

    <?php

}

wp_reset_query();