我不确定这个问题是否得到了回答,我甚至不确定我应该如何措辞这个问题,但。。。
我有一个自定义的帖子类型,称为视频,存档的样式与类别存档不同。
对于这个帖子类型,我有类别视频和子/子类别;例如:
视频-音乐视频-艺术家组-独唱艺术家-访谈-表演-艺术家组-独唱艺术家-其他
现在,我如何使这些类别具有与Video Post类型归档相同的样式,而不必为每个类别创建不同的php文件。
或者我必须为视频类别创建一个php文件吗?但如果我必须这样做,那么我如何才能让这些类别采用该归档的风格呢?
最合适的回答,由SO网友:Milo 整理而成
你可以通过a filter on category_template
. 这将符合你的主题functions.php
文件请参阅代码中的注释以了解其作用的说明:
function video_category_archive( $template = \'\' ){
// your parent video category ID
// ( change this to your actual video category ID )
$video_cat_id = 42;
// get the ID of the current category being viewed
$cat_id = get_queried_object_id();
// get the IDs of the ancestors of this category
$ancestors = get_ancestors( $cat_id, \'category\' );
// if this category is a child of the video category,
// or if this is the parent video category,
// load the post type archive template
// instead of the normal category template
// ( change archive-video.php to the name of the template you want to load )
if( in_array ( $video_cat_id, $ancestors )
|| $cat_id == $video_cat_id ){
$template = locate_template( array( \'archive-video.php\' ) );
}
return $template;
}
add_filter( \'category_template\', \'video_category_archive\' );