如何在短码php输出中包含用户ID?

时间:2017-02-08 作者:user6686780

对于我正在使用的短代码,插件的开发人员只添加了通过短代码输出内容的功能。所以我只需要使用短代码。

以下是可用的默认快捷码:

echo do_shortcode("[theplugin_user_data user_id=\'8\']");
使用此代码,它将为用户id为“8”的用户输出数据。问题是我不能使用这段代码,因为如果我这样做,它将为所有注释提供相同的用户id“8”数据,而我需要它来获取每个注释。

因此,基本上我需要获取当前评论作者的用户id,在获取他们的id后,我需要将其动态插入到短代码中。

这里有一个我能想到的想法,但我不知道如何让它起作用。

echo do_shortcode("[theplugin_user_data user_id=\'" . phpcodehere . "\']");
那么,如何获取当前评论者的用户id并将其插入到上面显示的短代码中呢?

<小时>Note:
我把这个放在评论部分来提取数据。我使用默认的wordpress评论系统,没有插件或外部评论系统(我从中提取数据的插件与评论无关)

Note 2:
所需的用户ID是发表评论的评论者,而不是登录的评论者——请注意,这是在wordpress comments循环中提取所有评论的。以下是注释循环:

function theme_comment( $comment, $args, $depth ) {
    $GLOBALS[\'comment\'] = $comment;
例如,get_comment_author_link() 在循环中工作以获取注释作者的链接。我需要的是评论作者的用户ID

Note 3:
不是文章作者,也不是登录用户;我需要的是评论作者用户ID

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

所以我假设“当前评论者”实际上是当前登录到WP的用户。因此,要获取当前用户ID,只需使用get_current_user_id:

echo do_shortcode("[theplugin_user_data user_id=\'" . get_current_user_id() . "\']");

UPDATE

好的,那么我们需要评论的作者ID:

//$comment = get_comment(); // in your case, it seems you already have a $comment object...
if($comment) {
    if($comment->user_id) echo do_shortcode("[theplugin_user_data user_id=\'" . $comment->user_id . "\']");
    else echo \'(no data available)\'; // <---- fallback, in case the comment has no known author
}
希望这有帮助!

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请