我已经研究这个问题好几个星期了,经常遇到同样的问题。这是一个有点复杂的设置:
我有一个category 称为“档案”。我还有一个custom taxonomy “档案”,用于对关于同一新闻事件或故事的帖子进行分组。当有人创建帖子时,他们可以将帖子分配给特定的档案,然后将其放入“档案”类别。这样,所有档案贴都在同一个类别下归档,同时仍然可以将故事彼此分离。
我需要category page 对于“档案”类别,显示所有custom taxonomy terms 在分类学“档案”中。反过来,这些链接到他们自己的特定档案列表。我创建了分类档案。php文件,它取代了默认的类别页面,所以这不再是一个问题。
使用其他论坛帖子,特别是this one, 我已经解决了大部分问题。“类别”页面显示所有分类术语、链接和所有内容,并可以将它们拆分为多个页面。(这有点骇人,因为WordPress通常不使用术语作为主要内容块,而是使用帖子)。
我现在唯一的问题是让第二页、第三页等工作正常。在第一页之外,它只显示默认索引。我的主题的php文件。
这是完整的模板页面。有人能找出它的毛病吗?我试了又试,但似乎找不到问题所在。
<?php get_header(); ?>
<?php get_sidebar (); ?>
<section class="articles grid main-content category">
<header class="grid-header">
<h2><?php single_cat_title();?></h2>
</header>
<?php
if ( get_query_var( \'paged\' ) ) {
$paged = get_query_var(\'paged\');
}
else if ( get_query_var( \'page\' ) ) {
$paged = get_query_var( \'page\' );
}
else {
$paged = 1;
}
$per_page = 9;
$number_of_terms = count( get_terms( "dossiers") );
$offset = $per_page * ( $paged - 1) ;
// Setup the arguments to pass in
$args = array(
\'order\' => \'ASC\',
\'orderby\' => \'menu_order\',
\'offset\' => $offset,
\'paged\' => $per_page
);
// Gather the terms
$terms = get_terms("dossiers", $args);
$count = count($terms);
if ( $count > 0 ){
echo "<ul>";
foreach ( $terms as $term ) {?>
<li class="article">
<a href="<?php echo get_term_link( $term ); ?>">
<?
if ( get_field(\'banner\', $term->taxonomy._.$term->term_id) ) { // check if the post has a Banner Image assigned to it.
$image = get_field(\'banner\', $term->taxonomy._.$term->term_id);
echo \'<img class="wp-post-image" src="\'.$image[sizes][\'thumbnail\'].\'" />\';
}
else {
echo \'<img class="wp-post-image" src="\' . get_bloginfo( \'stylesheet_directory\' ) . \'/img/missing-thumbnail.png" />\';
}
?>
<div class="meta-info" />
<div class="caption" data-category="<?php $category = get_the_category(); echo $category[0]->slug; ?>"><?php echo $term->name; ?> </div>
</div>
</a>
</li>
<?}
echo "</ul>";
}
?>
</section>
<nav class="pagination">
<?php
if($terms) {
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
\'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
\'format\' => \'/page/%#%\',
\'current\' => $paged,
\'total\' => ceil( $number_of_terms / $per_page ), // 9 items per page
\'type\' => \'list\',
\'mid_size\' => 5
) );
}
?>
</nav>
<?php get_footer(); ?>