I am using the
wp_new_comment() (previously used the
I now notice that I get a
Notice: Undefined index: comment_author_url
Notice: Undefined index: comment_author_email
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).
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.