2011-08-08 2 views
0

저는 wordpress 용 플러그인을 제작하고 있습니다. 처음에는 게시글의 URL이 http://localhost/worpress/?p=123 인 기본 설정으로 회계 처리를 수행했으며 wp_footer 작업에서 is_single()를 요청했습니다.is_single and postid

내 플러그인을 준비 할 때 코드를 정리하려고했습니다. 있다 내가 잘못지고있어 두 가지 (적어도) :

  1. 내가 init 행동이나 wp_footer보다는 뭔가 빨리에 is_single()를 요청할 때 왜, false를 반환합니까?
  2. 왜 내 페이지 사이클에서 var_dump ($ _ REQUEST) (또는 _POST 또는 _GET)를 시도 할 때 permalink 옵션을 url_friendly 유형으로 전환 한 후 빈 배열이 생깁니 까?

누구든지이 문제에 관해 밝힐 수 있습니까?

답변

1

질문 1 :

  • is_single() 단일 게시물에있는 경우에만 true을 반환합니다 init 액션 후크 정말 초기 사이클에서 발생
  • ; WP_Query가 인스턴스화되기 전에 is_single을 호출하면 false가 표시됩니다. 당신이 is_single 너무 일찍 wp-config.phpdefine('WP_DEBUG', true);을 설정 호출하고 있는지

알아낼합니다. 이것은 wp-config의 81 번째 줄에 있습니다. WordPress에서 너무 일찍 전화하면 오류 메시지가 표시됩니다. (게다가 개발하는 동안 사용할 수있는 좋은 도구입니다.)

질문 2 :

당신은 친절한 URL은 쿼리 문자열 (이름이 없기 때문에 친화적 인 URL의 전환 후 $_REQUEST 매개 변수를받지 못하고있어/값 쌍은 물음표 뒤에 나오는 숫자가 http://localhost/worpress/?p=123 인 것입니다.) http://localhost/worpress/foo/bar에는 물음표가 없습니다.

+0

다시 한 번 감사드립니다. 나는 당신의 서비스에 대한 지불을 시작해야한다 :) 나는 querystring 대 경로명의 차이를 이해하지만, $ _REQUEST 객체가 완전히 비어 있다는 것이 이상하다는 것을 알았다. –

+1

걱정할 필요가 없습니다. Wordpress는 친숙한 URL을 가져 와서 $ _REQUEST에서 찾고있는 것과 유사한 WP_Query로 파싱합니다. WP가 친숙한 URL을 해석하는 방법을보고 싶다면'get_queried_object()'를 살펴보십시오. 건배, 크리스 –