WordPress에서 URL은 경로에 매핑되지 않습니다. 데이터베이스 쿼리에 매핑됩니다.
"기본"퍼머 링크 모드에서 WordPress를 사용하는 경우 기본 URL 쿼리에? p = 1 또는? page = 234 등과 같은 변수 세트가 있습니다. ? s = search와 다른 많은 것들도 있습니다.
"pretty"퍼머 링크를 사용하는 경우, "다시 쓰기 규칙"이라는 큰 규칙 세트가 작성되어 다양한 URL 패턴을이 동일한 URL 매개 변수 세트에 직접 맵핑합니다. 따라서 / 2014 / 04 / 12 / example과 같은 URL은? year = 2014 & month = 04 & day = 12 & postname = example 또는 이와 유사한 것으로 매핑됩니다. 따라서이 매핑이 완료된 후 다음 사항도 이에 적용됩니다.
이러한 변수는 기본적으로 WP_Query 클래스의 기본 인스턴스를 제어합니다. WP_Query 클래스는 데이터베이스에서 "게시물"을 가져 오기 위해 데이터베이스 쿼리를 작성하는 모든 정보를 보유합니다. 전달 된 다양한 매개 변수는 어떤 종류의 쿼리를 작성하고 어떤 데이터를 가져 오는지를 제어합니다.
WordPress에서 표시 할 수있는 모든 것은 본질적으로 "게시물"입니다. 블로그는 시간 기반 순서의 일련의 게시물입니다. "페이지"는 이름이 정의 된 정적 게시물입니다. "사용자 정의 게시물 유형"은 정확하게 사용자 정의 유형이있는 "게시물"입니다. WordPress에 무엇이든 표시하는 모든 주요 쿼리는 wp_posts 테이블에서 게시물의 일부를 가져옵니다.
WP_Query가 그 일을합니다. URL의 매개 변수는 해당 기본 쿼리로 직접 전송되어 사용됩니다.
그런 다음 테마는 쿼리의 결과에 따라 사용할 템플릿을 결정합니다. / category / example을 요청한 경우? category_name = example이되어 기본 $ wp_query-> query_vars 배열이 해당 정보를 가져오고 WP_Query가 "example"범주에 대한 마지막 X 개의 게시물을 가져옵니다. is_category 플래그를 true로 설정합니다.
템플릿 로더는이 후에 실행됩니다. is_category ()가 true를 반환하고 카테고리 템플릿을 선택하기로 결정하면 템플릿에 따라 category-example.php를 찾고 category.php로 대체됩니다. 계층.
따라서 URL 작동 방식을 간단하게 변경하려는 경우의 질문입니다. URL을 변경 하시겠습니까? 또는 URL을 매핑 하시겠습니까? URL은 함수에 매핑되지 않기 때문에 쿼리를 제어하는 매개 변수에 매핑됩니다. URL이 해당 기본 쿼리를 조정하도록하려면 특수 URL이 완전히 다른 특수 코드를 실행하도록하는 것과는 약간 다른 프로세스입니다.
그리고 의견에서 귀하의 특정 질문에 대답하기 위해 : "실제로 게시물을 표시하고 싶지 않은 경우가 있습니까?" 아니 없어. 모든 것이 게시물입니다. 모든 내용은 게시물에 저장됩니다. 컨텐츠를 다른 곳에 저장하고 다른 경우에는 그렇게 할 수 있지만, 일반적으로 필요하지 않기 때문에 더 어렵습니다. 특별한 콘텐츠가있는 경우 맞춤 게시물 유형을 만들고 콘텐츠를 해당 유형의 게시물로 저장 한 다음 URL 패턴을 매핑하십시오. 쉬운.