Possible Duplicate:
The result of a shortcode appear BEFORE page content
short code output too early
我得到了这个在我的页面上显示我的博客帖子的快捷码,但摘录和评论显示在我的页面顶部。有人知道为什么要这么做吗?
/// Recent Blog Posts
add_shortcode(\'recent_blog_posts\', \'shortcode_recent_blog_posts\');
function shortcode_recent_blog_posts($atts) {
$str = \'\';
$args = array( \'numberposts\' => 3, \'post_status\'=>"publish",\'post_type\'=>"post",\'orderby\'=>"post_date");
$postslist = get_posts( $args );
foreach ($postslist as $post) : setup_postdata($post);
$str .= \'<div id ="article-section-box2" class="span3">\';
$str .= \'<div id= "image1" class="image-arcticle">\';
$str .= get_the_post_thumbnail($post->ID, \'\');
$str .= \'</div>\';
$str .=\'<p class ="orange16-no-bold">\'.get_the_title($post->ID,\'\').\'</p>\';
$str .=\'<p class="date">13 Feb 2012 - <h6 class="orange-title">\'.comments_popup_link(\'0 Comments\', \'1 Comment\', \'% Comments\').\';</h6></p>\';
$str .=\'<p class="article_text">\'.the_excerpt("child_of=8d").\'</p>\';
$str .=\'</div>\';
endforeach;
return $str;
}
最合适的回答,由SO网友:Mike Madern 整理而成
您使用该函数the_exerpt()
, 将此替换为get_the_excerpt()
.<我不确定,但您可能需要使用apply_filters(\'the_excerpt\', get_the_excerpt())
要保持格式为the_excerpt()
已返回。
尝试使用get_comment_reply_link
而不是comments_popup_link
.
两种功能the_excerpt()
和comment_popup_link()
不会返回值,但print 它使内容显示在页面顶部。