1

问题是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">
4

2 回答 2

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)

解决方案:传递$displayfalse.

return '<div id="wpratings"><b>Rating: </b>' . the_ratings('div',0,false) . '</div>';
于 2013-07-19T12:12:15.377 回答
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]标签之间的内容。

于 2013-07-19T12:10:04.080 回答