사용자 메타_key가 존재하는 경우 워드 프레스를 수행합니다.
여러분 모두에게 쉬운 일이라고 확신하지만 저에게는 이 모든 것이 처음입니다.
기본적으로 로그인한 사용자가 자신의 프로필에 특정 메타데이터가 첨부되어 있으면 사이트에 특정 내용이 표시되는지 확인하고 싶습니다.
사용자의 메타데이터는 umeta_id, user_id, meta_key 및 meta_value가 포함된 wp_user 메타데이터 테이블에 저장됩니다.본질적으로 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";
}
이 코드의 이론은 meta_key 'test'에 meta_value가 포함되어 있는지 확인하고, 만약 true이면 X가 Y를 하는지 확인하는 것입니다.불편한 점은 모든 사용자가 'test'라는 메타키를 가지고 있지 않다는 것입니다.따라서 로그인한 사용자가 이 메타키를 가지고 있지 않으면 코드가 작동하지 않습니다.또한 메타 키의 실제 값을 확인하고 싶지 않고(내가 신경 쓰는 모든 사용자에게 NULL일 수 있음), 로그인한 사용자에게 그러한 키가 존재하는지 알고 싶습니다.
무슨 생각 있어요?
워드프레스 >=3.3
제안된 해결책에는 주의해야 할 점이 있습니다: meta_key 값은false
거짓 부정을 줄 것입니다
값이 다음과 같더라도 wordPress에 meta_key가 설정되어 있는지 묻습니다.false
,사용하다metadata_exists
:
if ( metadata_exists( 'user', $user_id, $meta_key ) ) {
...
}
if ($havemeta) { echo 'your stuff'; }
(TESTED) 만약 당신이true
마지막 인수로, 문서에 따르면 메타데이터 필드의 값을 반환합니다.그 말은 당신이 그를false
최후의 변론으로서
$havemeta = get_user_meta($userID, 'test', false);
그러면 다른 답변에서 말씀드린 것처럼 확인이 가능합니다.
if ($havemeta)
echo $havemeta;
} else {
echo "No";
}
언급URL : https://stackoverflow.com/questions/9108218/wordpress-if-usermeta-meta-key-exists-do-this
'programing' 카테고리의 다른 글
Java 구성 프레임워크 (0) | 2023.10.12 |
---|---|
WP에서 TinyMCE에 여러 버튼을 추가하는 방법? (0) | 2023.10.12 |
mysql의 select 문 "in" 절에서 값 순서에 따라 정렬 (0) | 2023.10.12 |
패키지에 절차가 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.10.12 |
전문 jQuery 기반 콤보박스 제어? (0) | 2023.10.12 |