在我看来,流派应该有自己的分类法。然后将帖子分配到类别和类型。如果您这样做,您需要做以下几点才能使一切正常工作:
第一register the taxonomy genre
.
接下来,假设您使用的是核心帖子和类别,请转到Settings → Permalinks. 将永久链接设置为/genre/%genre%/%category%/%postname%\'/
以及您的分类基础/genre/all/
.
最后,您需要将过滤器添加到post_link
因此,自动生成的链接不包含文本字符串“%genre%”:
function wpse_101766_post_type_link( $permalink, $post ) {
if ( \'post\' == $post->post_type ) {
$genre = \'all\';
if ( false !== strpos( $permalink, \'%genre%\' ) ) {
$first_genre = wp_get_object_terms( array( $post->ID ), \'genre\', array( \'orderby\' => \'term_id\', \'count\' => 1 ) );
if ( ! is_wp_error( $first_genre ) && !empty( $first_genre ) ) {
$first_genre = array_shift( $first_genre );
$genre = $first_genre->slug;
}
}
return str_replace( \'%genre%\', $genre, $permalink );
}
return $permalink;
}
add_filter( \'post_link\', \'wpse_101766_post_type_link\', 10, 2 );
像往常一样,在进行重写更改时,请确保刷新您的重写规则。您在永久链接页面上保存更改时执行了此操作,但如果之后进行了更改,请返回并再次单击“保存更改”。
现在,URL如下所示:(使用“动作”类型、“幻想”类别和“指环王”帖子:
你还可以访问:
/genre/all/fantasy/
列出任何类型幻想类中的所有帖子/genre/action/fantasy,anime/
列出“动作”类以及“幻想”或“动画”类的所有帖子/genre/action/fantasy+anime/
列出“动作”类以及“幻想”或“动画”两类中的所有帖子/genre/action,adventure/fantasy+anime/
要列出“动作”或“冒险”类型以及“幻想”或“动画”两个类别中的所有帖子。。。等等它给你很大的灵活性!要按流派列出类别,请创建taxonomy-genre.php
在主题中创建文件。Here\'s a function 要将所有类别“纳入”一个流派,只需这样称呼:
$category_ids = get_terms_by_overlap( array(
\'term_ids\' => get_current_object_id(),
\'get_taxonomy\' => \'category\',
\'through_taxonomy\' => \'genre\'
) );
然后,您可以按照自己的意愿循环此操作。下面是一个基本示例:<ul>
<?php foreach ( $category_ids as $category_id ) : ?>
<li><a href="<?php echo get_category_link( $category_id ) ?>"><?php echo get_the_category_by_ID( $category_id ) ?></a></li>
<?php endforeach ?>
</ul>