Swe*_*ter 6 mysql wordpress metadata key
我相信这对你们所有人来说都很容易,但这对我来说是全新的。
基本上,我想检查登录用户的个人资料是否附加了某些元数据,网站上是否会显示某些内容。
用户的元数据存储在 wp_usermeta 表中,该表包含 umeta_id、user_id、meta_key 和 meta_value。本质上,我需要查看 user_id 是否有一个名为“test”的 meta_key。
我知道 get_user_meta() 函数,但我无法让它按照我想要的方式工作......
global $current_user;
get_currentuserinfo(); // wordpress global variable to fetch logged in user info
$userID = $current_user->ID; // logged in user's ID
$havemeta = get_user_meta($userID, 'test', true); // stores the value of logged in user's meta data for 'test'.
if (isset($havemeta)){
echo $havemeta;
} else {
echo "No";
}
Run Code Online (Sandbox Code Playgroud)
这段代码的理论是,我检查 meta_key 'test' 是否包含一个 meta_value,如果为真,则执行 X 否则执行 Y。令人烦恼的是,并非所有用户都有一个 'test' 的 meta_key。因此,如果登录用户没有此元密钥,则代码不起作用。此外,我不想检查元键的实际值(我所关心的可以是 NULL),我只想知道登录用户是否存在这样的键。
有任何想法吗?
Jes*_*sta 10
建议的解决方案有一个警告:值为 的 meta_keyfalse
会给出漏报。
要询问 WordPress 是否设置了 meta_key,即使该值为false
,请使用metadata_exists
:
if ( metadata_exists( 'user', $user_id, $meta_key ) ) {
...
}
Run Code Online (Sandbox Code Playgroud)
if ($havemeta) { echo 'your stuff'; }
Run Code Online (Sandbox Code Playgroud)