wp_new_comment()

wp_new_comment( array $commentdata, bool $avoid_die = false )

向数据库添加新注释。
Adds a new comment to the database.

目录锚点:#说明#源码#笔记

说明(Description)

过滤新的注释,以确保在将注释插入数据库之前,字段已被清理并有效。使用评论ID和评论是否被WordPress批准来调用“comment_post”操作。还有“preprocess_comment”过滤器,用于在函数处理注释数据之前对其进行处理。我们在这里直接使用远程地址。如果您在代理后面,您应该确保它设置正确,例如在wp中-配置.php,为您的环境。看到了吗https://core.trac.wordpress.org/ticket/9235另请参阅wp_insert_comment()


源码(Source)

/**
 * Adds a new comment to the database.
 *
 * Filters new comment to ensure that the fields are sanitized and valid before
 * inserting comment into database. Calls 'comment_post' action with comment ID
 * and whether comment is approved by WordPress. Also has 'preprocess_comment'
 * filter for processing the comment data before the function handles it.
 *
 * We use REMOTE_ADDR here directly. If you are behind a proxy, you should ensure
 * that it is properly set, such as in wp-config.php, for your environment.
 * See {@link https://core.trac.wordpress.org/ticket/9235}
 *
 * @since 1.5.0
 * @since 4.3.0 'comment_agent' and 'comment_author_IP' can be set via `$commentdata`.
 *
 * @see wp_insert_comment()
 *
 * @global wpdb $wpdb
 *
 * @param array $commentdata Contains information on the comment. See wp_insert_comment()
 *                           for information on accepted arguments.
 * @return int|false The ID of the comment on success, false on failure.
 */
function wp_new_comment( $commentdata ) {
	global $wpdb;

	if ( isset( $commentdata['user_ID'] ) ) {
		$commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID'];
	}

	$prefiltered_user_id = ( isset( $commentdata['user_id'] ) ) ? (int) $commentdata['user_id'] : 0;

	/**
	 * Filter a comment's data before it is sanitized and inserted into the database.
	 *
	 * @since 1.5.0
	 *
	 * @param array $commentdata Comment data.
	 */
	$commentdata = apply_filters( 'preprocess_comment', $commentdata );

	$commentdata['comment_post_ID'] = (int) $commentdata['comment_post_ID'];
	if ( isset( $commentdata['user_ID'] ) && $prefiltered_user_id !== (int) $commentdata['user_ID'] ) {
		$commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID'];
	} elseif ( isset( $commentdata['user_id'] ) ) {
		$commentdata['user_id'] = (int) $commentdata['user_id'];
	}

	$commentdata['comment_parent'] = isset($commentdata['comment_parent']) ? absint($commentdata['comment_parent']) : 0;
	$parent_status = ( 0 < $commentdata['comment_parent']="" )="" wp_get_comment_status($commentdata['comment_parent'])="" :="" '';="" $commentdata['comment_parent']="(" 'approved'="=" $parent_status="" ||="" 'unapproved'="=" $parent_status="" )="" $commentdata['comment_parent']="" :="" 0;="" if="" (="" !="" isset(="" $commentdata['comment_author_ip']="" )="" )="" {="" $commentdata['comment_author_ip']="$_SERVER['REMOTE_ADDR'];" }="" $commentdata['comment_author_ip']="preg_replace(" '/[^0-9a-fa-f:.,="" ]/',="" '',="" $commentdata['comment_author_ip']="" );="" if="" (="" !="" isset(="" $commentdata['comment_agent']="" )="" )="" {="" $commentdata['comment_agent']="isset(" $_server['http_user_agent']="" )="" $_server['http_user_agent']:="" '';="" }="" $commentdata['comment_agent']="substr(" $commentdata['comment_agent'],="" 0,="" 254="" );="" if="" (="" empty(="" $commentdata['comment_date']="" )="" )="" {="" $commentdata['comment_date']="current_time('mysql');" }="" if="" (="" empty(="" $commentdata['comment_date_gmt']="" )="" )="" {="" $commentdata['comment_date_gmt']="current_time(" 'mysql',="" 1="" );="" }="" $commentdata="wp_filter_comment($commentdata);" $commentdata['comment_approved']="wp_allow_comment($commentdata);" $comment_id="wp_insert_comment($commentdata);" if="" (="" !="" $comment_id="" )="" {="" $fields="array(" 'comment_author',="" 'comment_author_email',="" 'comment_author_url',="" 'comment_content'="" );="" foreach(="" $fields="" as="" $field="" )="" {="" if="" (="" isset(="" $commentdata[="" $field="" ]="" )="" )="" {="" $commentdata[="" $field="" ]="$wpdb-">strip_invalid_text_for_column( $wpdb->comments, $field, $commentdata[ $field ] );
			}
		}

		$commentdata = wp_filter_comment( $commentdata );

		$commentdata['comment_approved'] = wp_allow_comment( $commentdata );

		$comment_ID = wp_insert_comment( $commentdata );
		if ( ! $comment_ID ) {
			return false;
		}
	}

	/**
	 * Fires immediately after a comment is inserted into the database.
	 *
	 * @since 1.2.0
	 *
	 * @param int $comment_ID       The comment ID.
	 * @param int $comment_approved 1 (true) if the comment is approved, 0 (false) if not.
	 */
	do_action( 'comment_post', $comment_ID, $commentdata['comment_approved'] );

	if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
		if ( '0' == $commentdata['comment_approved'] ) {
			wp_notify_moderator( $comment_ID );
		}

		// wp_notify_postauthor() checks if notifying the author of their own comment.
		// By default, it won't, but filters can override this.
		if ( get_option( 'comments_notify' ) && $commentdata['comment_approved'] ) {
			wp_notify_postauthor( $comment_ID );
		}
	}

	return $comment_ID;
}
更新版本 源码位置 使用 被使用
4.7.0 wp-includes/comment.php 7 13

笔记(Notes)

基本示例

absint()

absint( mixed $maybeint )将值转换为非负整数,也就是取绝对值。Convert a value to non-negative integer.目录锚点:#参数#返回#源码#笔记参数(Parameters)参数类型必填说明$maybeint(mixed)必需要转换为非负整数的数据。返回(Return)(int)非负整数。源码(Source)function absint( $maybeint ) { return abs( intval( $maybeint ) );}/** *...

日期:2020-06-23 10:35:32 浏览:1276

activate_plugin()

activate_plugin( string $plugin, string $redirect = '', bool $network_wide = false, bool $silent = false )尝试激活插件,并在成功时重定向。Attempts activation of plugin in a “sandbox” and redirects on success.目录锚点:#说明#参数#返回#源码#笔记说明(Description)已激活的插件将不会再次尝试激活。其工作方式是在尝试包含插件...

日期:2020-06-23 10:39:26 浏览:1017

activate_plugins()

activate_plugins( string|string[]&nbsp;$plugins, string&nbsp;$redirect&nbsp;=&nbsp;'', bool&nbsp;$network_wide&nbsp;=&nbsp;false, bool&nbsp;$silent&nbsp;=&nbsp;false&nbsp;)激活多个插件。Activate multiple plugins.目录锚点:#说明#参数#返回#源码说明(Description)当WP_Error返回时,并不意...

日期:2020-09-08 17:28:27 浏览:1074

activate_sitewide_plugin()

activate_sitewide_plugin()不推荐用于激活仅网络插件的功能。Deprecated functionality for activating a network-only plugin.目录锚点:#说明#返回#源码说明(Description)另见激活插件()返回(Return)无返回值源码(Source)更新版本源码位置使用被使用3.0.0 wp-admin/includes/ms-deprecated.php:5701 function...

日期:2020-09-08 17:28:28 浏览:1864

addslashes_gpc()

addslashes_gpc( string&nbsp;$gpc&nbsp;)添加斜线以转义字符串。Adds slashes to escape strings.目录锚点:#说明#参数#返回#源码说明(Description)如果设置了magic_quotes_gpc,将首先删除斜线,请参见https://www.php.net/magic_quotes更多细节。参数(Parameters)参数类型必填说明 $gpc (string) ...

日期:2020-09-21 12:46:52 浏览:915

addslashes_strings_only()

addslashes_strings_only( mixed&nbsp;$value&nbsp;)仅当提供的值是字符串时才添加斜杠。Adds slashes only if the provided value is a string.目录锚点:#参数#返回#源码参数(Parameters)参数类型必填说明 $value (mixed) 必需 返回(Return)(mixe...

日期:2020-09-24 15:58:41 浏览:1304

add_action()

add_action( string&nbsp;$tag, callable&nbsp;$function_to_add, int&nbsp;$priority&nbsp;=&nbsp;10, int&nbsp;$accepted_args&nbsp;=&nbsp;1&nbsp;)将函数挂接到特定操作上。Hooks a function on to a specific action.目录锚点:#说明#参数#返回#源码#笔记说明(Description)Actions是WordPress核心在执行期间...

日期:2020-09-08 17:28:28 浏览:1166

add_blog_option()

add_blog_option( int&nbsp;$id, string&nbsp;$option, mixed&nbsp;$value&nbsp;)为给定的博客id添加新选项。Add a new option for a given blog id.目录锚点:#说明#参数#返回#源码#笔记说明(Description)不需要序列化值。如果需要序列化该值,则在将其插入数据库之前将对其进行序列化。请记住,资源不能序列化或作为选项添加。可以创建不带值的选项,然后稍后更新这些值。现有选项将不会更新,并执行检...

日期:2020-08-26 10:53:23 浏览:978

add_clean_index()

add_clean_index( string&nbsp;$table, string&nbsp;$index&nbsp;)向指定表添加索引。Adds an index to a specified table.目录锚点:#参数#返回#源码#笔记参数(Parameters)参数类型必填说明 $table (string) 必需 数据库表名。 ...

日期:2020-09-08 17:28:29 浏览:974

add_comments_page()

add_comments_page( string&nbsp;$page_title, string&nbsp;$menu_title, string&nbsp;$capability, string&nbsp;$menu_slug, callable&nbsp;$function&nbsp;=&nbsp;'', int&nbsp;$position&nbsp;=&nbsp;null&nbsp;)将子菜单页添加到“注释”主菜单。Add submenu page to the Comments ma...

日期:2020-08-24 11:14:39 浏览:1035