从特定帖子中随机拉取评论,以快捷代码显示在主页上

时间:2014-01-30 作者:dbj

我正在尝试使用此处提供的解决方案,在我的主页上显示特定帖子的随机评论:

https://stackoverflow.com/questions/11790239/random-comments-on-page-wordpress/11790460#11790460

这是可行的,但它从一篇随机的帖子中抽取一条随机评论,而不是用短代码选择我指向的帖子。有人知道如何解决这个问题吗?

add_shortcode( \'randomComment\', \'randomComment_handler\' );

function randomComment_handler($post_id) {
extract( shortcode_atts( array(
    \'post_id\' => \'0\',
    ), $atts ) );
$out = "";
$comments = get_comments("post_id=$post_id&status=approve");
if ($comments) {
    $ndx = mt_rand(0,sizeof($comments)) - 1; 
    $comment = $comments[$ndx];
    $out = "<div class=\'randomComment\'><div class=\'randomAuthor\'>".$comment->comment_author."</div><div class=\'randomText\'>".$comment->comment_content."</div></div>";
}
return $out;
}
以及短代码:

[randomComment post_id="463"]

1 个回复
最合适的回答,由SO网友:birgire 整理而成

代码段的主要问题是这一行:

function randomComment_handler($post_id) {
查看上的抄本add_shortcode() 看看你能不能找到错误。

Spoiler: 应该是这样的:

函数randomComment\\u处理程序($atts,$content=NULL){

ps:您还应该避免使用extract(), 使用$atts[\'post_id\'] 相反

进一步考虑将第三个参数添加到shortcode_atts() 作用

结束

相关推荐

shortcode not working

我正在制作woocommerce的内容产品,并在模板中作为echo do_shortcode (\'[product_attribute attribute=\"Grams\"]\'); 其中Grams作为属性在我的后端,它有值,但没有输出任何内容。这是一个错误的查询还是我需要做其他事情?