为什么我的wordpress单一自定义帖子导航不起作用?

时间:2013-07-08 22:42:42

标签: php wordpress wordpress-theming

首先,我是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或特定类别。

现在我提出一些建议,说我做错了,应该把它注册为一个函数。

任何人都可以提出建议吗?

这些问题提示了列表导航的解决方案,但这对我来说很好,单个帖子导航对我来说不知何故搞砸了:

Suggestion

1 个答案:

答案 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