首先,我是WordPress的总菜鸟,但是这个当前正在开发的项目需要wordpress,所以值班我必须这样做。
我创建了4个类别,每个类别都列在不同的页面上。 类别是:
1-文章2-视频3-幻灯片4-Audio
这是我在其自己的页面上列出每个类别的方式: 这是针对READ cat。
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('cat=8&showposts=6'.'order=DESC'.'cat=10'
.'orderby=post_date'.'offset=0'.'&paged='.$paged);
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<td class="leftBoxes ">
<a href="<?php the_permalink(); ?>#blog">
<div class="imgMargin"> <?php the_post_thumbnail(); ?> </div></a>
<br>
<div class="boxScrollsBlogsView readFet">
<a href=" <?php the_permalink(); ?>#blog" >
<h2><?php the_title(); ?> </h2>
<P class="pal">
<?php the_excerpt(); ?>
</P>
</a>
</div>
</td>
<?php endwhile; ?>
我使用此代码段将每个类别重定向到single.php中自己的单页
<?php
$post = $wp_query->post;
if ( in_category('read') ) {
include(TEMPLATEPATH . '/singlePages/singleReadBlog.php');
}
elseif ( in_category('view') ) {
include(TEMPLATEPATH . '/singlePages/singleViewBlog.php');
}
elseif ( in_category('listen') ) {
include(TEMPLATEPATH . '/singlePages/singleListenBlog.php');
}
elseif ( in_category('watch') ) {
include(TEMPLATEPATH . '/singlePages/singleWatchBlog.php');
}
?>
现在一切正常,但在单个帖子页面上,NEXT Post,Previous Post也可以转到其他类别,它不会停留在Only Video或Sildeshow或特定类别。
现在我提出一些建议,说我做错了,应该把它注册为一个函数。
任何人都可以提出建议吗?
这些问题提示了列表导航的解决方案,但这对我来说很好,单个帖子导航对我来说不知何故搞砸了:
答案 0 :(得分:1)
您可能知道您不必创建页面来列出类别内容吗?
无论如何,关于你的模板if / elseif,你可以使用single_template过滤器完成它:
function get_custom_post_type_template($single_template) {
if ( in_category('read') ) {
$single_template = dirname( __FILE__ ) . '/post-type-template.php';
}
}
return $single_template;
}
add_filter( "single_template", "get_custom_post_type_template" ) ;
请参阅https://codex.wordpress.org/Plugin_API/Filter_Reference/single_template
对于您的上一个/下一个帖子,请检查previous_post_link函数,该函数允许您将它们限制为与当前显示的帖子相同的类别:
previous_post_link('%link', 'Previous in category', TRUE);
请参阅http://codex.wordpress.org/Function_Reference/previous_post_link