post_exists

函数
post_exists ( $title, $content = '', $date = '', $type = '', $status = '' )
参数
  • (string) $title Post title.
    Required:
  • (string) $content Optional. Post content.
    Required:
    Default: (empty)
  • (string) $date Optional. Post date.
    Required:
    Default: (empty)
  • (string) $type Optional. Post type.
    Required:
    Default: (empty)
  • (string) $status Optional. Post status.
    Required:
    Default: (empty)
返回值
  • (int) Post ID if post exists, 0 otherwise.
定义位置
相关方法
post_type_existstag_existsterm_existscomment_exists_post_states
引入
2.0.0
弃用
-

post_exists: 这个函数用来检查数据库中是否已经存在一个具有指定标题或lug的文章。如果它存在,该函数返回文章的ID。

根据标题、内容、日期和类型来确定一个文章是否存在。

function post_exists( $title, $content = '', $date = '', $type = '', $status = '' ) {
	global $wpdb;

	$post_title   = wp_unslash( sanitize_post_field( 'post_title', $title, 0, 'db' ) );
	$post_content = wp_unslash( sanitize_post_field( 'post_content', $content, 0, 'db' ) );
	$post_date    = wp_unslash( sanitize_post_field( 'post_date', $date, 0, 'db' ) );
	$post_type    = wp_unslash( sanitize_post_field( 'post_type', $type, 0, 'db' ) );
	$post_status  = wp_unslash( sanitize_post_field( 'post_status', $status, 0, 'db' ) );

	$query = "SELECT ID FROM $wpdb->posts WHERE 1=1";
	$args  = array();

	if ( ! empty( $date ) ) {
		$query .= ' AND post_date = %s';
		$args[] = $post_date;
	}

	if ( ! empty( $title ) ) {
		$query .= ' AND post_title = %s';
		$args[] = $post_title;
	}

	if ( ! empty( $content ) ) {
		$query .= ' AND post_content = %s';
		$args[] = $post_content;
	}

	if ( ! empty( $type ) ) {
		$query .= ' AND post_type = %s';
		$args[] = $post_type;
	}

	if ( ! empty( $status ) ) {
		$query .= ' AND post_status = %s';
		$args[] = $post_status;
	}

	if ( ! empty( $args ) ) {
		return (int) $wpdb->get_var( $wpdb->prepare( $query, $args ) );
	}

	return 0;
}