简码返回在wordpress中跳到div之外

Posted

技术标签:

【中文标题】简码返回在wordpress中跳到div之外【英文标题】:Shortcode return jumps outside div in wordpress 【发布时间】:2013-07-18 17:06:48 【问题描述】:

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

【问题讨论】:

【参考方案1】:

通常,任何以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>';

【讨论】:

我明白了。 get_the_ratings() 是未定义的函数。【参考方案2】:

这有什么不同吗?

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] 标签之间的内容。

【讨论】:

以上是关于简码返回在wordpress中跳到div之外的主要内容,如果未能解决你的问题,请参考以下文章

wordpress 打印中的简码始终位于顶部,内联 HTML

如何在python中跳到下一个[重复]

Wordpress 如何使用简码从 localStorage 获取值

详解WordPress中简码格式标签编写的基本方法

在 10 秒内刷新 wordpress 网站中的 div 内容

如何在wordpress中递归解码简码