web-dev-qa-db-ja.com

分類法ページで404を取得する

私の分類法とカスタム投稿タイプのカスタム分類テンプレートを作成しました。

カスタム投稿タイプ名は「eコマース」ですカスタム分類は「ecommerce_categories」です。問題はページネーションにあり、その中に投稿がある2ページがあることを正しく示していますが、2ページをクリックすると404ページになります分類ページでは、分類ファイルと同じように機能するカスタムページテンプレートも作成しました。ページ編集はここで(カスタムページテンプレートで)機能します。問題は分類カテゴリページでのみ発生します。これはファイルtaxonomy-ecommerce_categories.phpのコードです。

<?php 
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $term = $wp_query->queried_object;

        $shop_loop = new WP_Query( array( 'post_type' => 'ecommerce', 'ecommerce_categories' => $term->name, 'posts_per_page' => 2, 'orderby' => 'menu_order', 'paged'=>$paged ) ); ?>

        <?php while ( $shop_loop->have_posts()  ) : $shop_loop->the_post(); ?>

                // here is my loop code with divs links etc.. etc...

        <?php endwhile;?>
        <div class="clearfix"></div>
        <?php if(function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $shop_loop ) ); } ?>

2ページ目または3ページ目をクリックすると404エラーページが表示されます。これはパーマリンクの設定でも発生します。また、このコードを使用してwp pagenaviプラグインからwordpressのデフォルトページに変更した場合

<?php wp_link_pages(); ?> or previous_post_link and next_post_link 

投稿の下に何も表示されていません。

どうすればこれを修正できますか?何が悪いの?

2
Alessandro

rewrite rule を使用して、これを自分で解決しました。

ストーリー:"piece"カスタム投稿タイプ、分類法"media_tag""m_audio"用語と分類法"genre_tag""g_sacred""g_folk"などがあります。アーカイブにアクセスするには、/piece/audio/<genre>のようなURLが必要です。

だから、今私はfunctions.phpにあります:

add_filter( 'rewrite_rules_array', 'my_insert_rewrite_rules' );
function my_insert_rewrite_rules( $rules ) {
  $newrules = array();
  // audio pieces with g_sacred tax:
  $newrules['piece/audio/([a-z]+)(/page/([0-9]+))?'] =
      'index.php?post_type=piece&media_tag=m_audio'
      . '&genre_tag=g_$matches[1]&paged=$matches[3]';

  return $newrules + $rules;
}

taxonomy-media_tag-m_audio.phpテンプレートには何もありません。

お役に立てれば。

また、functions.phpにこれがあります:

// add_action( 'wp_loaded','my_flush_ALL_rules' );
function my_flush_ALL_rules(){
  global $wp_rewrite;
  $wp_rewrite->flush_rules();
}

そして、add_actionのコメントを外して、変更後にルールをフラッシュします。

2
brownian