私はそれに添付された投稿タイプ 'product'と階層的分類法 'types'を持っています。この分類には、「ドライクリーニング」、「洗濯機」などの用語があります。各用語にいくつかの下位用語があります。
私の状況では、私は表示する必要があります、例えば:
私の質問は:
taxonomy-types-washer.php
は十分ですか?それともtaxonomy-types.php
を作成してそこにロジックを作成する必要がありますか?taxonomy-types-{term_parent}.php
、サブ用語ですべての商品を一覧表示するにはtaxonomy-types.php
が必要になるでしょう。single-product.php
を作成する必要があります。archive-{posttype}.php
は機能しません。これに対する解決策はありますか? (私は別の質問を作成するか、これに固執する必要があります)?_ update _
私は私のrewrite_rules
オプションをチェックしました、そしてそれは[タイプ]を全くリストしません。理由はわかりません。それをテストするために、私のスラッグをproduct-types
に変えて、パーマリンクをフラッシュして、これをリストします:
[product-types/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/([^/]+)/page/?([0-9]{1,})/?$] => index.php?types=$matches[1]&paged=$matches[2]
[product-types/([^/]+)/?$] => index.php?types=$matches[1]
それで私はそれが今登録されていると思います。私はそれが404に行くURL product-types/washer
をロードしようとします。私はURL index.php?types=washer
をロードしようとします。それも、404行きます。今、私はこのファイルを持っています:
だから、私はこれが何が悪いのかわかりません:(。
UPDATE#2
私は問題を見つけます。 'rewrite'=>array('hierarchical'=>true)
を逃したからです
これが新しいrewrite_rules
です。
[product-types/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/(.+?)/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/(.+?)/page/?([0-9]{1,})/?$] => index.php?types=$matches[1]&paged=$matches[2]
[product-types/(.+?)/?$] => index.php?types=$matches[1]
これらのタイプのURLはWP 3.1以降でサポートされています。
register_taxonomy( 'types', 'post', array(
'hierarchical' => true,
'rewrite' => array( 'hierarchical' => true ),
...
);
変更を加えた後は、必ず書き換え規則をフラッシュしてください。
親用語と子用語の両方に使用するテンプレートはtaxonomy-types.phpです。
$current_term = get_queried_object();
if ( 0 == $current_term->parent ) {
// it's a parent term; display it's child terms using wp_list_categories() etc.
} else {
// it's a child term; display the posts using The Loop etc.
}