기본적으로 맞춤 게시물 유형을 사용하여 용어집을 만들고 싶습니다. 설정하는 데 문제가있어 원하는 방식으로 다시 작성합니다. 나는 그것을 좋아합니다 :
주요 용어집 URL :
http://example.com/glossary/
문자 A로 시작되는 용어집 :
http://example.com/glossary/a/
단일 용어집의 URL :
http://example.com/glossary/a/atomic/
실제로 아래 코드를 사용 하여이 작업을 수행했지만 매우 어색한 방법이며 페이지를 볼 때 잘못된 템플릿이 호출되어 어딘가에서 작동하지 않는 것으로 알고 있습니다. http://example.com/glossary/를 제외하고 archive-sumo-glossary-term.php가 예상대로 호출되는 경우 다른 두 가지는 내 테마에서 index.php를 활성화합니다.
여기에 ( functions.php
테마에서) 간다 :
add_action('init', 'create_glossary');
function create_glossary()
{
register_post_type
(
'sumo-glossary-term',
array
(
'labels' => array
(
'name' => _x('Glossary Terms', 'post type general name'),
'singular_name' => _x('Glossary Term', 'post type singular name')
# And so on …
),
'supports' => array('title', 'editor', 'thumbnail'),
'public' => true,
'rewrite' => array
(
'slug' => 'glossary',
'with_front' => false
),
'query_var' => 'glossary-term',
'has_archive' => true
)
);
register_taxonomy
(
'sumo-glossary-letter',
'sumo-glossary-term',
array
(
'hierarchical' => true,
'labels' => array
(
'name' => _x('Letters', 'taxonomy general name'),
'singular_name' => _x('Letter', 'taxonomy singular name')
# And so one
),
'show_ui' => true,
'query_var' => 'glossary-letter',
'rewrite' => false
)
);
}
add_filter('post_type_link', 'glossary_term_permalink', 10, 4);
function glossary_term_permalink($post_link, $post, $leavename, $sample)
{
if ($post->post_type == 'sumo-glossary-term')
{
$permalink = str_replace('glossary/', 'glossary/' . $post->post_name[0] . '/', $post_link);
}
return $permalink;
}
add_rewrite_rule('^glossary/([^/]*)?$','index.php?glossary-letter=$matches[1]','top');
add_rewrite_rule('^glossary/([^/]*)/([^/]*)?$','index.php?glossary-term=$matches[2]','top');