特定の分類法のリストを表示する方法を見つけようとしています(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.php
、archive-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.php
はcategorycourses
のリストを表示しません。したがって、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,
を追加する必要があります。あなたの情報は、行ってチェックしてください 分類法の登録 および カスタム投稿の種類の登録