2014-09-02 2 views
0

Я разработал плагин wordpress, который вставляет скрипт JS в начало каждой страницы сайта. Я пытаюсь передать пару переменных скрипту (на PHP), например, имя, адрес электронной почты и веб-сайт автора комментария, когда есть комментарий.Wordpress - get_comment_author() возвращает анонимный

Я попытался использовать get_comment_author(), get_comment_author_url() и get_comment_author_email(), но он всегда возвращает «Аноним», даже если я просто ввел имя, сайт и почтовый адрес при публикации комментария.

Вот код:

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>"; 
} 

Вы знаете, почему функции возвращают анонимный автор, и как я могу это исправить? Спасибо заранее.

ответ

1

Как видно на странице this, вам необходимо предоставить идентификатор этой функции или она должна находиться внутри цикла. Поскольку в вашем случае ни одно не верно, оно возвращает anonymous.

Описание Получить автору данного комментария. Если в комментарии есть пустое поле comment_author, то предполагается, что пользователь «Анонимный». Эта функция предназначена для работы внутри цикла 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 о том, как вы можете использовать вывод, который следует.

Если это все еще неясно, дайте мне знать.

+0

Hi @Sander Koedood, и спасибо за ваш ответ. Как я могу получить идентификатор комментария? Я видел, что для этого есть функция get_comment_ID(); , но он, похоже, не работает «на своем». Например, пользователь оставляет комментарий, указывая свое имя и адрес электронной почты, как мне получить идентификатор комментария, который он только что опубликовал? – zdev

+0

Мне нужно было бы увидеть код, чтобы иметь возможность ответить, что я боюсь. –

+0

Вот суть всего плагина: https://gist.github.com/anonymous/6e5043b5a4e95cf2d679 – zdev

Смежные вопросы