使用wp_Get_Recent_Posts的空摘录

时间:2014-09-11 作者:Th3Alchemist

我有一个简单的短代码来显示最近的帖子及其标题,除了:

add_shortcode(\'latest3\', function(){
    $recent_posts = wp_get_recent_posts(
            array(
                \'numberposts\'   => 3,
                \'orderby\'       => \'post_date\',
                \'order\'         => \'DESC\',
                \'post_type\'     => \'post\',
                \'post_status\'   => \'publish\'
            ), ARRAY_A);

    $output = \'<h2>Latest posts</h2>\';
    foreach ( $recent_posts as $recent ) {
        $output .= \'<h3>\'.$recent["post_title"].\'</h3>\';
        $output .= $recent["post_excerpt"];
    }
    return $output;
});
但出于某种原因,摘录输出为空。print_r($recents) 显示确实存在一个名为post_excerpt 但始终显示为空。

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

这个post_excerpt 值为空,因为您的帖子没有明确的摘录。虽然the_excerpt() 是否从帖子内容中生成摘要如果帖子摘要为空,则函数wp_get_recent_posts(), 它基本上是get_posts(), 没有。

SO网友:Tomás Cot

这个代码可以工作,我正在使用setup_postdata 创建post 对象类似于函数the_post() 是的,所以现在可以使用循环中的函数。

$recent_posts = wp_get_recent_posts(
            array(
                \'numberposts\'   => 3,
                \'orderby\'       => \'post_date\',
                \'order\'         => \'DESC\',
                \'post_type\'     => \'post\',
                \'post_status\'   => \'publish\'
            ), OBJECT);

    $output = \'<h2>Latest posts</h2>\';
    foreach ( $recent_posts as $recent ) {
        setup_postdata($recent);
        $output .= \'<h3>\'.get_the_title().\'</h3>\';
        $output .= get_the_excerpt();
    }
    wp_reset_postdata();
    return $output;

结束

相关推荐

Images with excerpt function

我有一个很好的摘录功能,可以让我的段落保持得体。顺便说一句,效果很好。 function pietergoosen_custom_wp_trim_excerpt($text) { global $post; $raw_excerpt = $text; if ( \'\' == $text ) { $text = get_the_content(\'\'); $text = strip_shortcodes( $text ); &#x