@toscho는 이 답변에 의견을 남겼 습니다. 특히 포스트 포스트 글로벌과 관련하여 글로벌 범위에서 얼마나 많은 신뢰를 가져야 $post
합니까?
그래서 무엇? 검사가 실행되기 전에 모든 사람이 전역 변수를 덮어 쓸 수 있습니다. 이것이 바로 글로벌 변수의 핵심입니다 : 글로벌 액세스.
$post
예를 들어 테마 자체 또는 플러그인에 의해 대부분 수정되는 전역 중 하나입니다. 또한 관련 게시물을 설정하는 등 주어진 템플릿 내의 다른 응용 프로그램에서 가장 일반적으로 사용되는 글로벌입니다.
사용자 정의 쿼리 사용으로 인해 특정 문제가있는 여러 게시물에 응답하고 주석을 달면 사용자 정의 쿼리가 재설정되지 않기 때문에 대부분의 문제가 발생합니다 (사용자 정의 쿼리는 기본 쿼리에 의해 설정된 전역을 변경합니다).
이것으로부터, $post
신뢰할 수없는 것은 명백하다 . 사용자 정의 쿼리를 사용하는 잘못 작성된 코드는 $post
전역을 변경하여 관련 게시물과 같은 무언가를 중단 시킬 수 있습니다 .
소수의 WordPress 개발자 만이 실제로 핵심 내부 작업에 대해 충분히 지식이 있으며 피해야 할 것과하지 말아야 할 것을 알고 있습니다. 많은 사용자가 WordPress 코어가 어떻게 작동하는지 전혀 모릅니다.
단순히 테마를 다운로드하고 플러그인을 설치하여 필요한 작업을 수행하거나 튜토리얼에서 코드를 복사하기 만하면됩니다. 단일 게시물에서 관련 게시물을 손상시키는 잘못 작성된 플러그인을 설치한다고 가정하면 그 원인을 어떻게 알 수 있습니까? 그들은 그것을 스스로 분류 할 수 있습니까, 아니면이 문제에 대해 주제 저자에게 이메일을 쓰거나이 사이트에 질문을 올리는 백 번째 사람이 될 것입니까?
내 질문 : 전역 코드 $post
가 신뢰할 수 없을 때 가져온 다른 코드로 인한 문제를 어떻게 방지 할 수 있습니까? 우리 $post
는 전혀 글로벌을 사용해야합니까 ? 대안은 무엇입니까?
사용 중 (도 일부 테마와 플러그인에서 볼 수) 나는 생각했다 : 그냥 내가 결론을 여기 전에 내 마음을 공유 wp_reset_postdata()
또는 wp_reset_query()
사용하기 전에 $post
, 글로벌 메인 쿼리로 재설정되고하는지 확인하십시오 $post
. 그러나 다른 사람이 자신의 플러그인을 올바르게 코딩하지 않았기 때문에 왜 테마에 내 코드를 부풀려 야합니까? 그리고 누군가 사용자 정의 쿼리를 올바르게 재설정 한 경우이 작업은 두 번째로 불필요하게 실행되므로 좋지 않습니다.
내가 생각한 두 번째 방법은를 사용 $wp_query
하고 다음과 같은 방법을 사용하는 것 $wp_query->post
입니다.
이에 대한 모든 의견을 부탁드립니다.