unregister_meta_key

函数
unregister_meta_key ( $object_type, $meta_key, $object_subtype = '' )
参数
  • (string) $object_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user', or any other object type with an associated meta table.
    Required:
  • (string) $meta_key Metadata key.
    Required:
  • (string) $object_subtype Optional. The subtype of the object type.
    Required:
    Default: (empty)
返回值
  • (bool) True if successful. False if the meta key was not registered.
定义位置
相关方法
register_metaget_registered_meta_keysunregister_term_metaunregister_post_metaregistered_meta_key_exists
引入
4.6.0
弃用
-

unregister_meta_key: 这个函数取消注册一个自定义的文章元键。它有两个参数:$meta_type,是元注册的对象的类型(文章、用户、术语等),和$meta_key,是元键的名称。

从已注册的键值列表中取消注册一个元键值。

function unregister_meta_key( $object_type, $meta_key, $object_subtype = '' ) {
	global $wp_meta_keys;

	if ( ! registered_meta_key_exists( $object_type, $meta_key, $object_subtype ) ) {
		return false;
	}

	$args = $wp_meta_keys[ $object_type ][ $object_subtype ][ $meta_key ];

	if ( isset( $args['sanitize_callback'] ) && is_callable( $args['sanitize_callback'] ) ) {
		if ( ! empty( $object_subtype ) ) {
			remove_filter( "sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}", $args['sanitize_callback'] );
		} else {
			remove_filter( "sanitize_{$object_type}_meta_{$meta_key}", $args['sanitize_callback'] );
		}
	}

	if ( isset( $args['auth_callback'] ) && is_callable( $args['auth_callback'] ) ) {
		if ( ! empty( $object_subtype ) ) {
			remove_filter( "auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}", $args['auth_callback'] );
		} else {
			remove_filter( "auth_{$object_type}_meta_{$meta_key}", $args['auth_callback'] );
		}
	}

	unset( $wp_meta_keys[ $object_type ][ $object_subtype ][ $meta_key ] );

	// Do some clean up.
	if ( empty( $wp_meta_keys[ $object_type ][ $object_subtype ] ) ) {
		unset( $wp_meta_keys[ $object_type ][ $object_subtype ] );
	}
	if ( empty( $wp_meta_keys[ $object_type ] ) ) {
		unset( $wp_meta_keys[ $object_type ] );
	}

	return true;
}

常见问题

FAQs
查看更多 >