0

首先,我对 WordPress 完全是个菜鸟,但目前正在进行的这个项目需要 wordpress,所以我必须这样做。

我创建了 4 个类别,每个类别都列在不同的页面上。类别是:

1- 文章 2- 视频 3- 幻灯片 4- 音频

这就是我在其自己的页面上列出每个类别的方式:这是为 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');
}

?>

现在这一切都很好,但是在单个帖子页面上,下一个帖子,上一个帖子也转到其他类别,它不会停留在仅视频或 Sildeshow 或特定类别。

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

谁能给个建议?

这些问题为列表导航提供了解决方案,但对我来说效果很好,单个帖子导航对我来说有点混乱:

建议

4

1 回答 1

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

于 2013-07-08T23:03:03.000 回答