按元ID获取元数据

原型

get_metadata_by_mid( string $meta_type, int $meta_id )

参数

$meta_type (string) (Required) 对象元数据的类型用于(例如,评论,帖子,术语或用户)。

$meta_id (int) (Required) 特定元行的ID

返回值

(object|false)  元对象或错误。

源文件

路径:wp-includes/meta.php

<?php
...
function get_metadata_by_mid( $meta_type, $meta_id ) {
	global $wpdb;
	if ( ! $meta_type || ! is_numeric( $meta_id ) || floor( $meta_id ) != $meta_id ) {
		return false;
	}
	$meta_id = intval( $meta_id );
	if ( $meta_id <= 0 ) {
		return false;
	}
	$table = _get_meta_table( $meta_type );
	if ( ! $table ) {
		return false;
	}
	$id_column = ( 'user' == $meta_type ) ? 'umeta_id' : 'meta_id';
	/**
	 * Filters whether to retrieve metadata of a specific type by meta ID.
	 *
	 * The dynamic portion of the hook, `$meta_type`, refers to the meta
	 * object type (comment, post, term, or user). Returning a non-null value
	 * will effectively short-circuit the function.
	 *
	 * @since 5.0.0
	 *
	 * @param mixed $value    The value get_metadata_by_mid() should return.
	 * @param int   $meta_id  Meta ID.
	 */
	$check = apply_filters( "get_{$meta_type}_metadata_by_mid", null, $meta_id );
	if ( null !== $check ) {
		return $check;
	}
	$meta = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE $id_column = %d", $meta_id ) );
	if ( empty( $meta ) )
		return false;
	if ( isset( $meta->meta_value ) )
		$meta->meta_value = maybe_unserialize( $meta->meta_value );
	return $meta;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_metadata_by_mid/