authors/books/chapters
저자, 서적 및 챕터가 모두 고유 한 사용자 정의 게시물 유형으로 설정된 퍼머 링크가있는 다중 레벨 사용자 정의 게시물 유형 구조를 설정하려고합니다. 예를 들어이 사이트의 일반적인 URL은 다음과 같습니다.example.com/authors/stephen-king/the-shining/chapter-3/
각 장은 한 권의 책에만 속할 수 있으며 각 책은 한 명의 저자 만 속할 수 있습니다. 저자와 책에 CPT 대신 분류법을 사용하는 것을 고려했지만 메타 데이터를 각 항목과 연결해야하며이를 위해 게시 인터페이스를 선호합니다.
각 사용자 정의 게시물을 CPT의 항목 하위 항목으로 한 단계 높이기 만하면됩니다. 예를 들어, "3 장"을 만들고 사용자 지정 메타 상자를 사용하여 "The Shining"을 부모로 할당합니다. "빛나는 것"에는 부모로서 "스티븐 킹"이 있습니다. 이 관계를 만드는 데 아무런 문제가 없었습니다.
CPT 슬러그에 다시 쓰기 태그를 사용하고 있으며 영구 링크가 작동하기를 원하지만 정확하지 않습니다. 다시 쓰기 분석기를 사용하면 다시 쓰기 규칙이 실제로 생성되었지만 올바른 순서가 아닌 것 같으므로 다른 규칙이 먼저 처리됩니다.
CPT를 등록하는 방법은 다음과 같습니다.
function cpt_init() {
$labels = array(
'name' => 'Authors'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array(
'slug' => 'author',
'with_front' => FALSE,
),
'with_front' => false,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => true,
'menu_position' => null,
'supports' => array( 'title', 'editor' )
);
register_post_type('authors',$args);
$labels = array(
'name' => 'Books'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array(
'slug' => 'author/%authors%',
'with_front' => FALSE,
),
'with_front' => false,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => true,
'menu_position' => null,
'supports' => array( 'title', 'editor' )
);
register_post_type('books',$args);
$labels = array(
'name' => 'Chapters'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array(
'slug' => 'author/%authors%/%books%',
'with_front' => FALSE,
),
'with_front' => FALSE,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => true,
'menu_position' => null,
'supports' => array( 'title', 'editor' )
);
register_post_type('chapters',$args);
}
add_action( 'init', 'cpt_init' );
저자, 서적 및 챕터가 모두 먼저 일치하도록 다시 쓰기 규칙의 우선 순위를 변경할 수있는 방법이 있습니까?
또한 post_type_link
필터 를 추가해야한다는 것을 알고 있지만 처음에는 영구 링크를 얻는 것이 부차적 인 것 같습니다. 해당 필터의 작동 방식에 대한 포괄적 인 개요를 어디에서 찾을 수 있는지 아는 사람이 있다면 감사하겠습니다.