web-dev-qa-db-ja.com

特定の分類のリスティングテンプレートを表示する方法

特定の分類法のリストを表示する方法を見つけようとしています(categorycourses)。

functions.phpにテーマがあります。

//Register custom taxonomy for courses-categories
$course_cat_args = array(
  'hierarchical' => true,
  'labels' => $course_cat_labels, //Other labels set before
  'show_ui' => true,
  'show_admin_column' => true,
  'query_var' => true,
  'rewrite' => array( 'hierarchical' => true )
);

register_taxonomy( 'categorycourses', array('course'), $course_cat_args );

実際の分類法はadminでうまく機能しています。

今、私はすべてのコースカテゴリをリストするフロントエンドでcategorycoursesのテンプレートを作成しようとしています。

テンプレート階層を見てきました そして分類名categorycourses.phpのファイルを作るべきだと思いました

そこで私はthemesフォルダにcategorycourses.phpというファイルを作成しました。私はcategorycourses-categorycourse.phparchive-categorycourses.phpも作成しようとしましたが、404エラーが出ます。

私と裸でください。私はWPの多くのバックエンドのことを理解していますが、フロントエンドでテンプレートを作成する方法を学んでいるだけです。

私は特定の投稿タイプのためにアーカイブページを作成することができるので、ルールなどを書き換えて、私のローカルサーバーで作業しています。

何がおかしいのですか?

UPDATE1.私はtaxonomy-categorycourses.phpというファイル名を作成しようとしましたが、同じ結果になりました(404エラー)。

私も試してみました:

$course_cat_args = array(
  'hierarchical' => true,
  'labels' => $course_cat_labels,
  'show_ui' => true,
  'show_admin_column' => true,
  'query_var' => true,
  'rewrite' => array('slug' => 'soup')
);

register_taxonomy( 'categorycourses', array('course'), $course_cat_args );

http://server/soupでテンプレートにアクセスしようとしましたが、それでもエラーが発生します。 (adminでパーマリンク設定を保存した後)

UPDATE2:* 私はそれを考え出したと思います: * "root-taxonomy"用のテンプレートはないようです。ルートとして機能するためには、特定のコースカテゴリを選択する必要があります。

私の場合は、このファイルを作成しました。

taxonomy-categorycourses-semester2014.php

次にhttp://server/soup/semester2014にアクセスすると、期待されるテンプレート(taxonomy-categorycourses-semester2014.php)が表示されます。

しかし、http://server/soup/のように「分類法のルートテンプレート」を実際に作成する方法はないようです。 taxonomy-categorycourses.phpという名前のテンプレートを作成しても機能しません。

これは正しいですか?

あなたがやりたいことはpage.phpタイプのテンプレートがなければ不可能です。あなたが達成したいことをサポートする テンプレート階層 はありません。カテゴリでもまったく同じように機能します。 taxonomy-categorycourses.phpcategorycoursesのリストを表示しません。したがって、categorycoursesが通常のカテゴリの場合はcategory-categorycourses.phpも表示されます。 categorycoursesをクリックすると、その分類法またはカテゴリーからの投稿を表示するページに移動します。

分類法の下に用語またはカテゴリのリストを表示する必要がある場合は、カスタムpage.phpテンプレートを作成し、 get_the_terms() を使用して分類法に関連付けられているすべての用語/カテゴリのリストを取得する必要があります。 wp_list_categories( $args ) はリストを出力するので、これを修正して必要なものを表示することができます。あなたはあなたのテーマのpage.phpテンプレートのコピーを作成し、それをpage-tax.phpのようなものと呼ぶことができます。あなたはこのテンプレートのループを変更する必要があります。これが14のテーマの例です。

 <?php
/**
 * Template Name: Page Tax
 */
get_header(); ?>

<div id="main-content" class="main-content">

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

        <?php //list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin)

            $taxonomy     = 'brands';
            $orderby      = 'name'; 
            $show_count   = 0;      // 1 for yes, 0 for no
            $pad_counts   = 0;      // 1 for yes, 0 for no
            $hierarchical = 1;      // 1 for yes, 0 for no
            $title        = '';

            $args = array(
              'taxonomy'     => $taxonomy,
              'orderby'      => $orderby,
              'show_count'   => $show_count,
              'pad_counts'   => $pad_counts,
              'hierarchical' => $hierarchical,
              'title_li'     => $title
            );

        ?>

        <ul>
            <?php wp_list_categories( $args ); ?>
        </ul>

        </div><!-- #content -->
    </div><!-- #primary -->
    <?php get_sidebar( 'content' ); ?>
</div><!-- #main-content -->

<?php
get_footer();

$taxonomy = 'brands';をあなたの分類名に変更することを忘れないでください。これで、[新しいページの追加]画面で新しいページを作成し、ページスラッグを分類名に設定して、このテンプレートを選択できます。これでhttp://server/categorycourses/と入力でき、作成したこのページに移動します。

元の回答あなたの答えはあなたが提供したリンクの中にあります。コーデックスはそれを完璧に述べています、あなたはそれを正しく実装する必要があるだけです。あなたのテンプレートはtaxonomy-categorycourses.phpと呼ばれるべきです。あなたが提供したリンクを参照してください。

UPDATE1沢山のレンガのように私を襲い、CPTでしばらく前に同じ問題を抱えていた、そして私があなたのコードを見たとき私はそれを逃した。カスタムテンプレートを機能させるには、カスタム投稿タイプを登録するときに、引数に'has_archive' => true,を追加する必要があります。あなたの情報は、行ってチェックしてください 分類法の登録 および カスタム投稿の種類の登録

5
Pieter Goosen