在wordpress中,短代码返回跳转到div之外

时间:2013-07-19 12:04:24

标签: html wordpress shortcode

问题是the_ratigs()跳出<div id="wpratings">

function wpratings( $atts, $content = null ) {
    return '<div id="wpratings"><b>Rating: </b>' . the_ratings() . '</div>';
}

add_shortcode("wpratings", "wpratings");

短代码输出示例:

5.00 <<< this is output of the_ratings()
Here is the post content
Rating: <<< this is place of <div id="wpratings">

2 个答案:

答案 0 :(得分:4)

通常,任何以the_*开头的函数都会 print 结果。您需要的是等效函数get_the_ratings()

在WP中,我们有the_titleget_the_titlethe_contentget_the_content。这就是它失败的原因,短代码必须return值,而不是print

你没有提到插件是什么。如果是WP-PostRatings,则没有get_the_rating,但您有以下内容:

the_ratings($start_tag = 'div', $custom_id = 0, $display = true)

解决方案:将$display作为false传递。

return '<div id="wpratings"><b>Rating: </b>' . the_ratings('div',0,false) . '</div>';

答案 1 :(得分:0)

这有什么不同吗?

function wpratings( $atts, $content = null ) {
    $content = the_ratings();
    return '<div id="wpratings"><b>Rating: </b>' . $content . '</div>';
}

add_shortcode("wpratings", "wpratings");

$content[shortcode]content[/shortcode]代码之间的内容。