Berikut adalah bagian dari kode dari salah satu proyek saya untuk menyiapkan struktur yang serupa untuk permalinks (siput dasar yang sama untuk kedua jenis posting dan arsip taksonomi), harap perhatikan nilai parameter 'has_archive' dan 'rewrite' dari kedua posting jenis dan taksonomi:
add_action( 'init', 'register_my_post_types' );
function register_my_post_types() {
register_post_type( 'movie',
array(
....
'has_archive' => 'movies',
'rewrite' => array(
'slug' => 'movies/%mv_category%',
'with_front' => false
),
'taxonomies' => array(
'mv_category',
),
)
);
register_taxonomy(
'mv_category',
array(
'movie'
),
array(
...
'hierarchical' => true,
'rewrite' => array(
'slug' => 'movies',
'with_front' => false,
'hierarchical' => false
)
)
);
) // end of create_my_post_types function
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
function filter_post_type_link($link, $post)
{
if ($post->post_type != 'movie')
return $link;
if ($cats = get_the_terms($post->ID, 'mv_category'))
$link = str_replace('%mv_category%', array_pop($cats)->slug, $link);
return $link;
}
Kemudian Anda dapat mengakses kategori 'Dokumenter' dari jenis posting Film dengan url ini:
site.com/movies/documentary/
dan 'Film A' dari kategori 'Dokumenter' adalah:
site.com/movies/documentary/movie-a/
CATATAN: Sangat penting untuk mendaftarkan taksonomi setelah jenis posting, karena aturan penulisan ulang permalink dihasilkan di WordPress.