wp_new_comment requires author url and author email

by theyuv   Last Updated September 11, 2019 20:08 PM

I am using the wp_new_comment() (previously used the wp_insert_comment()) function.

I now notice that I get a

Notice: Undefined index: comment_author_url

and a:

Notice: Undefined index: comment_author_email

in the wp-includes/comment.php file.

Previously, when using wp_insert_comment() I left these fields in the arguments blank (ie: left them out of the arguments array) and I didn't receive any notices.

How come I am receiving a notice for these arguments now? Are these arguments required for the wp_new_comment() function but not for wp_insert_comment()? If so, why?

All of my comments are written by registered users. I can simply enter empty strings for these fields or use the user's registration information to populate the fields. Any suggestions regarding this?

(my comment form is taken from the plugin I'm using).


Tags : comments notices

Answers 1

The example from the codex, the array of argument is now required.

global $post, $current_user; //for this example only :)

    $commentdata = array('comment_post_ID' => $post->ID, // to which post the comment will show up
        'comment_author' => 'Another Someone', //fixed value - can be dynamic 
        'comment_author_email' => '[email protected]', //fixed value - can be dynamic 
        'comment_author_url' => 'http://example.com', //fixed value - can be dynamic 
        'comment_content' => 'Comment messsage...', //fixed value - can be dynamic 
        'comment_type' => '', //empty for regular comments, 'pingback' for pingbacks, 'trackback' for trackbacks
        'comment_parent' => 0, //0 if it's not a reply to another comment; if it's a reply, mention the parent comment ID here
        'user_id' => $current_user->ID, //passing current user ID or any predefined as per the demand

  //Insert new comment and get the comment ID
  $comment_id = wp_new_comment( $commentdata );

You can have a look to wp_filter_comment(), the source shows some filters that set fill $commentdata. Maybe one of these are used by the plugin you use.

October 14, 2016 16:40 PM

Related Questions

Embedding Youtube video on comments

Updated September 03, 2017 17:08 PM