我为E.G.添加了自定义帖子类型电影并注册自定义分类。
我通过在帖子类型slug之前添加自定义分类名称来重写slug。
我在寄存器帖子类型中添加了重写参数:
'rewrite' => array( 'slug' => 'movie/%tax_name%', 'with_front' => false )
以及分类法参数:
array(
'labels' => $lables,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'hierarchical' => true,
'has_archive' => false,
'rewrite' => array( 'slug' => 'type', 'with_front' => false )
);
我还在init操作中添加了以下行:
add_rewrite_rule( '^movies/(.*)/(.*)/([^/]+)/?$','index.php?type=$matches[2]', 'top' );
和'post_type_link'操作:
// Add parent taxonomy name / module name
$terms = wp_get_post_terms( $post->ID, 'type', array() );
$term = isset($terms['0']) ? $terms['0'] : '';
if( !empty($term->slug) ) {
$link = str_replace( '%tax_name%', $term->slug, $link );
} else {
$link = str_replace( '/%tax_name%', '', $link );
}
现在我的网址是http://yourdomain.com/movie/fun/movie_name。
我已经采取了一些参考。从这里:https://wordpress.stackexchange.com/questions/94817/add-category-base-to-url-in-custom-post-type-taxonomy
但问题是,当我查看该帖子时,它会调用archive.php而不是single.php,并且还会执行类似存档页面并显示所有页面。
请提供一些解决方案。任何建议被接受。
由于
答案 0 :(得分:0)
我在R& D之后得到了答案,我需要改变:
add_rewrite_rule( '^movies/(.*)/(.*)/([^/]+)/?$','index.php?type=$matches[2]', 'top' );
要:
add_rewrite_rule( '^movies/(.*)/([^/]+)/?$','index.php?movies=$matches[2]', 'top' );