web-dev-qa-db-ja.com

分類アーカイブページの改ページが途切れる

私はすべての分類法のアーカイブページ(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; ?>...&nbsp;<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(); ?>
1
grrrbytes

自分で考え出した。どうやら、改ページが壊れているのは、私の '製品'と 'タイプ'(これらは、単にデモンストレーションを目的としたものではありません)が同じスラッグを持っているためです。 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ルールを追加しました。

1
grrrbytes

私があなたを正しく理解しているならば、あなたはあなたのサイトで定義された「タイプ」と命名された分類法を持っています。これはあらゆる種類のものを壊すでしょう。 "Type"は 予約語 の1つであり、分類法には使用しないでください。

0
mfields