2010-12-15 3 views
0

나는 조금 혼란 스러워요,하지만 난 get_post_meta(get_the_ID(), "event", $single = true);를 호출하는 경우는 해당 키에 대한 값을 반환합니다,하지만 난 이런 식으로 호출하는 경우 :어떻게 전화 할 get_post_meta 제대로

$event_page_meta = "event"; 


function isEvent() 
{ 
    return get_post_meta(get_the_ID(), $event_page_meta, $single = true); 
} 

은 모든 메타의 배열을 반환 . 나는 오히려 미숙 한 php 개발자 (주로 파이썬)이지만, 두 호출 사이에 어떤 차이점도 볼 수 없다.

변수에 키를 추출 할 수없는 이유를 설명 할 수 있습니까?

답변

2

두 가지 문제 : get_post_meta에 대한

  1. 세 번째 인수가 참 또는 거짓이어야하지 변수 할당. true으로 작성하십시오.

  2. $ event_page_meta는 함수 내에서 범위 내에 있지 않으므로 인수로 전달하거나 전역으로 만들어야합니다.

에테르 :

function isEvent($event_page_meta) { 
    return get_post_meta(get_the_ID(), $event_page_meta, true); 
} 

//somewhere else 
$something = isEvent($event_page_meta); 

또는 :

function isEvent() { 
    global $event_page_meta; 
    return get_post_meta(get_the_ID(), $event_page_meta, true); 
} 

...이 $ event_page_meta 당신이 검색 할 메타 데이터 키의 이름이 포함 된 가정합니다. 왜 함수 호출의 문자열이 아니라 변수에 있는지 잘 모르겠습니다.

+0

예! 큰! 사이트 전체에 걸쳐 일부 글로벌 설정을 원할 때 전 세계적인 것이 좋습니다. – dmitko

+0

일반적으로 전역 변수를 사용하면 잘못 설계된 코드를 작성했음을 의미합니다. –

+0

확인. 그런 전역 상수에 대한 더 나은 디자인을 알려주시겠습니까? 그것들을 세계적인 것들로 사용하는 것은 좋고 아주 직접적인 아이디어 인 것 같습니다. 나는 정말로 알고 싶다. 파이썬에서는 모든 변수를 저장할 constants.py 모듈을 만들 것입니다. – dmitko

관련 문제