Tôi đang cố gắng viết lại url của mình cho một custom_post_type được đặt tên wr_events
bằng một trong các thuật ngữ custom_taxonomy của nó từevent_type
add_action('init', 'wr_events');
function wr_events() {
register_taxonomy(
'event_type',
'wr_event',
array(
'label' => 'Types',
'singular_label' => 'Typ',
'hierarchical' => true,
'query_var' => true,
'rewrite' => array('slug' => 'events'),
)
);
$labels = array(
'name' => _x('Events', 'post type general name'),
'singular_name' => _x('Event', 'post type singular name')
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor','thumbnail', 'excerpt'),
'rewrite' => array(
//'slug' => 'event',
'slug' => 'events/%event%',
'with_front' => false
),
'has_archive' => 'events'
);
register_post_type( 'wr_event' , $args );
flush_rewrite_rules();
}
add_action('save_post', 'save_details');
add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample)
{
if ( false !== strpos( $post_link, '%event%' ) ) {
$event_type_term = get_the_terms( $post->ID, 'event_type' );
$post_link = str_replace( '%event%', array_pop( $event_type_term )->slug, $post_link );
}
return $post_link;
}
Vì vậy, trong trường hợp của tôi, các thuật ngữ phân loại của tôi sẽ là "hội thảo" hoặc "bài giảng", v.v.
url/events/lectures
hoặc url/events/workshops
liệt kê tất cả các bài đăng của tôi liên quan đến "danh mục" này, url/events
hiển thị một kho lưu trữ tùy chỉnh cho tất cả các sự kiện của tôi. -> đây chỉ là những gì tôi muốn tuy nhiên điều duy nhất không hoạt động là url hoàn chỉnh cho chính bài đăng tùy chỉnh
url/events/lectures/post-name
- ném 404!
Bất cứ ý tưởng tại sao điều này đang xảy ra? events_permalink_structure()
Chức năng của tôi dường như hoạt động chính xác vì nó thay thế permalinks của tôi exaclty theo cách tôi muốn.
Tôi đã cài đặt Plugin "Rewrite Analyzer" và nó hiển thị cho tôi "Regex đang trống" wr_event
.
Tôi cũng đã cố gắng xóa Quy tắc Viết lại bằng cách truy cập cài đặt permalink. Tuy nhiên không có tác dụng.