私はすべての分類法のアーカイブページ(taxonomie-{taxonomy-name}.php
)を作成しましたが、これはうまくいきます。私の分類法のナメクジは、post-type
のナメクジと同じです。これにより、URL内にきれいな階層を作成することが可能になります。次に例を示します。
Post-type products
が、book、cd、およびdvdの値を持つ分類法として 'type'を持つ場合。 post-type1のスラッグはproduct
で、taxonomy1のスラッグはproduct
です。
このようにして、私は以下のように分類アーカイブをリストすることができます。
商品/本
製品/ CD
製品/ DVD
これはとてもうまくいきます。ただし、ページネーションは製品アーカイブで機能しますが、products/{type}
アーカイブでは404になります。
どんな手掛かり?
分類テンプレートのコードは次のとおりです。
<?php get_header(); ?>
<section id="inhoud" class="hfeed">
<nav class="navigatiebalk">
<ul class="pagina-navigatie">
<li class="volgende-pagina"><?php previous_posts_link(''); ?></li>
<li class="vorige-pagina"><?php next_posts_link(''); ?></li>
</ul>
</nav>
<?php while ( have_posts() ) : the_post(); ?>
<?php
$post_type = get_post_type( get_the_ID() );
?>
<article class="hentry publicaties artikel <?php echo $post_type ?>">
<header class="artikel-hoofd">
<?php the_title( '<h1 class="titel"><span class="datum date">' . the_date('d.m.y', '', '', false) . '</span><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h1>' ); ?>
<figure class="icoontje"></figure>
</header>
<section class="inleiding">
<figure class="bericht-icoon"><?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); echo '<a href="' . $large_image_url[0] . '" class="thumbnail-link colorbox" rel="lightbox" title="' . the_title_attribute('echo=0') . '" >'; the_post_thumbnail('thumbnail', array('class' => 'artikel-thumbnail')); ?></a>
</figure>
<span><?php $this_excerpt = get_the_excerpt(); echo $this_excerpt; ?>... <a href="<?php the_permalink(); ?>" class="lees-verder">Lees en luister</a>
</span>
</section>
</article>
<?php endwhile; ?>
<nav class="navigatiebalk">
<ul class="pagina-navigatie">
<li class="volgende-pagina"><?php previous_posts_link(''); ?></li>
<li class="vorige-pagina"><?php next_posts_link(''); ?></li>
</ul>
</nav>
</section>
<?php get_footer(); ?>
自分で考え出した。どうやら、改ページが壊れているのは、私の '製品'と 'タイプ'(これらは、単にデモンストレーションを目的としたものではありません)が同じスラッグを持っているためです。 Productsは 'products'のスラッグを持ち、typesは 'products /%typename%'のスラッグを持ちます。これにより、私のパーマリンクを階層的にすることができます:products/dvdまたはproducts/cd。それはうまくいった、それはそれが個々のポストタイプへの私のパーマリンクを壊したので分類学アーカイブページの私のページ付けを壊した。私がしたことはそれを修正するために以下のことでした:
function add_rewrite_rules($rules) {
$newrules['([^/]+)/([^\.]+).html$'] = 'index.php?$matches[1]=$matches[2]';
$newrules['([^/]+)/([^/]+)/page/?([0-9]{1,})/?$'] = 'index.php?post_type=$matches[1]&locations=$matches[2]&paged=$matches[3]';
$rules = $newrules + $rules;
return $rules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
Apacheがページ分割された分類アーカイブと個々のアーカイブポストを見つけるように、いくつかのmod-rewriteルールを追加しました。
私があなたを正しく理解しているならば、あなたはあなたのサイトで定義された「タイプ」と命名された分類法を持っています。これはあらゆる種類のものを壊すでしょう。 "Type"は 予約語 の1つであり、分類法には使用しないでください。