2014-02-06 6 views
1

난 header.php, footer.php, single.php 등에서 다음과 같은 기능을 시도워드 프레스 루프 get_the_id()

var_dump(in_the_loop()); 
var_dump(get_the_id()); 

제 기능 제공 거짓 (우리는 루프에 있지 않은 의미) 및 두 번째 함수는 매번 게시물 ID를 제공합니다. 워드 프레스에서 get_the_id()

설명 :

현재 게시물의 숫자 ID를 검색합니다. 이 태그는 루프 내에 있어야합니다.

나는 그냥 루프에서 기능을 호출하면 왜 내가 게시물 ID를 얻을 수 있습니까?

답변

2

해야는 워드 프레스에 악마의 눈을 제공합니다 ... get_the_id()에 대한 약간 강하다.

헤더 및 비 루프 (확인)에서 작동합니다.

게시/페이지는 본질적으로이 대화에서 상호 교환 가능합니다.

이런 식으로 생각해보십시오. - 이상한 물건을 다루거나 페이지가 아닌 경우를 제외하고 항상 어떤 방식 으로든 항상 게시물 아이디를 갖습니다. 설치 루트 (예 : site.com/)에 게시물이 있으면 뭔가 표시되어야합니다. 정적 전면 페이지 설정과 같은 게시/페이지에 영향을주는 다른 설정이 있습니다. 범주 목록에서 페이지가있는 경우 루프 앞에 반환 된 첫 번째 ID가 있습니다.

페이지 ID가 (루프 이전에 더 많거나 적게 설정됩니다.) URL (pretty 또는? p = 123 형식)이 콘텐츠를 구술 한 결과입니다. 예쁜 이름을 사용하면 사이트의 페이지를 사용합니다. com/foo-bar /는 "foo-bar"에 대한 퍼머 링크 규칙을 통해 사용할 수있는 콘텐츠가 있는지 조회하려고 시도합니다. 콘텐츠가 있으면 게시물 ID를 얻습니다 (단순화)

나중에 페이지 빌드 당신은 루프에 들어갈 그러나, 루프 당신은 또한 루프를 정렬 변경하거나 보완 할 수있는 기회를 제공하기 전에 -.. 그러한 반복되는 페이지 ID를 변경하거나 정렬 등을

in_the_loop()과 관련, WP는

를 말한다

"루프가 시작되지 않았거나 종료 된 경우 발신자가, 루프 내 false 인 경우. 진정한"루프 (루프는 WP 세계의 핵심 인) 행동 경우 http://codex.wordpress.org/Function_Reference/in_the_loop

in_the_loop()이 평가를 통해 . 또한 중요 - 당신이 루프에있을 때 WP는 여러 페이지/게시물 (ID)을 반복 할 수 있습니다.

ID가 항상 어떻게 표시되는지에 대해 100 % 방탄 설명이 없지만 API를 파헤 치면 여러 가지 연결 방법이 결과 일 수 있습니다.

귀하의 혼란을 이해하고 귀하에게 동의합니다. 나는 WP가 get_the_id()을 루프 기반 툴로 의도했다고 생각하는데, 루프 밖에서 예기치 않은 결과가 나올 것이다.

호프가 도움이 되었으면, 나는 WP에서 일하는 것을 즐긴다. 나는 네가하기를 바란다.

+1

thnx 자세한 정보는 upvoted. –