좋아, 나는 세 가지 유형의 요청 모두에 대한 실무 예제를 얻었다. 그것들을 작동시키기 위해서는 많은 실험과 혼란이 필요했습니다. Milo는 사람들이 자신의 질문에 대답하도록 방해하는 데 능숙하다고 생각합니다.
수많은 변경과 영구 링크를 새로 고친 후 add_rewrite_url 외부의 URL을 알아내는 것이 훨씬 쉽다는 것을 깨달았습니다. 일단 작동하면 다시 쓰기를 정의하십시오. 예 index.php?param=foo&post_type=example_type
입니다.
또 다른 명백한 점이지만 여기에 추가하면 다른 사람에게 도움이 될 수 있습니다. 페이지 / 서브 페이지 와일드 카드 규칙을 정의하기 전에 사용자 정의 게시 유형 add_rewrite_rule 규칙을 정의해야합니다. 나는 그 시간에 꽤 많은 시간을 낭비했고 그것이 규칙이 작동하지 않는 이유를 이해하지 못하게하는 주요 원인이라고 생각합니다.
여기 내 모든 요구에 적용되는 3 가지 규칙이 있습니다. 페이지 / 하위 페이지 규칙이 단일 규칙으로 결합되었습니다.
// Custom Post Archive
add_rewrite_rule(
'^foo/example_type/?$',
'index.php?param=foo&post_type=example_type',
'top'
);
// Custom Post Individual
add_rewrite_rule(
'^foo/example_type/([^/]*)/?$',
'index.php?param=foo&example_type=$matches[1]',
'top'
);
// Pages, Top-Level and Sub-Pages
// This MUST be placed in the code AFTER custom post add_rewrite_rule
add_rewrite_rule(
'^foo/(.+)/?$',
'index.php?param=foo&pagename=$matches[1]',
'top'
);
또한 내가 한 것은 여러 개의 사용자 정의 게시물 유형 규칙을 추가하는 루프를 설정하는 것입니다. 페이지 / 서브 페이지 와일드 카드 규칙을 정의하기 전에 사용자 정의 게시 유형 add_rewrite_rule 규칙을 정의해야합니다.
$custom_types = array('example_type', 'projects', 'people');
foreach($custom_types as $type) {
// Custom Post Archive
add_rewrite_rule(
'^foo/'.$type.'/?$',
'index.php?param=foo&post_type='.$type,
'top'
);
// Custom Post Individual
add_rewrite_rule(
'^foo/'.$type.'/([^/]*)/?$',
'index.php?param=foo&'.$type.'=$matches[1]',
'top'
);
}
재 작성 분석기 더 나은 워드 프레스 페이지 / 게시물에 대한 조회하는 방법을 이해하려고 할 때 마일로가 함께 전달 매우 도움이되었다.
page
게시물 유형이나 페이지가 아니라 게시물, 카테고리, 태그 등을 의미하는 URL이 있습니까? 계층 구조의 부모 / 자식 페이지는 어떻습니까?