我开发了一个wordpress插件,可以在网站的每个页面的头部插入一个JS脚本。我正在尝试将一些变量传递给脚本(在PHP中),例如评论作者的姓名,电子邮件和网站,当有评论时。
我尝试使用get_comment_author(),get_comment_author_url()和get_comment_author_email(),但它总是返回“Anonymous”,即使我在发布评论时输入了名称,网站和邮件地址。
以下是代码:
add_action('wp_head', 'insert_script');
function insert_script(){
$name = get_comment_author();
$website = get_comment_author_url();
$email = get_comment_author_email();
echo " <script type='text/javascript'>
var _gigo= _gigo || {};
_gigo['firstname'] = '' ;
_gigo['lastname'] = '".$name."' ;
_gigo['company'] = '".$website."' ;
_gigo['email'] = '".$email."' ;
</script>";
}
你知道为什么函数会返回一个匿名作者以及我如何修复它? 提前谢谢。
答案 0 :(得分:1)
从this页面可以看出,您需要为该功能提供ID,或者需要在循环内部。因为在你的情况下都不是,所以它返回anonymous
。
描述 检索当前评论的作者。如果评论中有一个空的comment_author字段,那么&#39; Anonymous&#39;假设是人。这个函数意味着生活在WordPress循环中。
Usage
<?php $author = get_comment_author( $comment_ID ); ?>
要通过帖子获得评论,您可以使用get_comments()功能。您可以按如下方式使用它:
<?php
global $post; // get the current post
$postId = $post->ID; // get the current post ID
$comments = get_comments('post_id=' . $postId); // This gets all comments from current post
?>
您可以查看the link如何使用后面的输出。
如果仍然不清楚,请告诉我。