web-dev-qa-db-ja.com

カスタム投稿タイプのすべてのカテゴリ用のテンプレート

みなさん、こんにちは。

私はあなたがこれを手伝ってくれることを願っています。私は(理想的には)カスタム投稿タイプのカテゴリ用の一般的なテンプレートが必要です。

カスタム投稿の種類:リスティング(type-listings)リスティングのカテゴリ(cat-listings):リース(リース)&セール(セール)

だから私は http://www.domain.com/listings/cat-listings/lease にアクセスしたときに私は404(これはこのページがあることを意味するのですか)を得る私はWordpressがデフォルトのものにフォールバックするようにしているのを知っているので前者を疑っています...このページで私はリースカテゴリ内のすべての投稿を表示し、セールス投稿のある同様のセールページに移動できるようにします。

今、私はそれぞれのためにページを作成し、それらにカスタムテンプレートページを持たせることができることを知っていますが、私のクライアントがページとページテンプレートを作成しなければならない場合があります。

もう1つの解決策は、私がリストページを作成してカテゴリ間のトグル/タブを作成するだけのトグル/タブシステムを使用することです。これに関する私の問題は、リストがいくつあるかわからないということです。したがって、ページネーションはうまくいくはずです。私はトグル/タブとページネーションを持つことができるとは思わない。

ご協力いただきありがとうございます!

私は以下を試してみましたが、運がありませんでした。 cat-listings.php type-listings.php archive-type-listings.php archive-type-listings-cat-listings.php category.php category-type-listings.php category-cat-listings.php category-type-listings -cat-listings.php分類法タイプの一覧表示.php分類法 - 猫 - 一覧表示.php分類法タイプの一覧表示 - 猫 - 一覧表示.php

私は私が必要とするもののように聞こえるこの記事を見つけた、しかしあなたが上のリストからわかることができるように私は運なしでそれを試みた。 分類法のすべての用語に対して同じテンプレート

カスタム投稿タイプを登録する方法は次のとおりです。

    register_post_type('type-listings', array(
    'labels' => array(
    'name' => _x('Our Listings', 'Titles', theme_domain()),
    'singular_name' => _x('Listing', 'Titles', theme_domain()),
    'menu_name' => _x('Our Listings', 'Titles', theme_domain()),
    ),
    'public' => false,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => array('slug' => _x('listings', 'URL Slug', theme_domain()), 'with_front' => false, 'page' => false),
    'capability_type' => 'page',
    'has_archive' => true,
    'hierarchical' => false,
    'menu_position' => 21,
    'menu_icon' => 'dashicons-admin-home',
    'supports' => array('title', 'custom-fields', 'revisions'),
    ));
    $catProjectsArgs = array(
    'label' => __('Availability', theme_domain()),
    'sort' => true,
    'show_ui' => true,
    'show_admin_column' => true,
    'hierarchical' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'args' => array('orderby' => 'term_order'),
    );
    register_taxonomy('cat-listings', array('type-listings'), $catProjectsArgs);
1
robinwkurtz

taxonomyに使用している名前は許可されていません。 register_post_type()$taxonomyパラメータは言う

$分類法

(ストリング)(必須)分類法の名前。名前には、小文字とアンダースコアのみを使用し、32文字を超えないようにする必要があります(データベース構造の制限)。

デフォルト:なし

そのため、cat-listingsという名前を別の名前に変更する必要があります(残りの回答ではcat_listingsと想定します)。

それでは、あなたの質問を一つずつ見てみましょう。

  1. だから私は http://www.domain.com/listings/cat_listings/lease にアクセスすると、404が表示されます(これはこのページがテンプレートを持っていないからです。

そのようなパーマリンク構造を持つことは可能です。分類法cat_listingsの下でleaseという名前の用語を作成すると、デフォルトのURL構造は次のようになります。

http://www.domain.com/cat_listings/lease

その前にlistingsという名前のセグメントを追加する場合は、次のようにrewrite引数を渡す必要があります。

$catProjectsArgs = array(
    'label' => __('Availability', theme_domain()),
    'sort' => true,
    'show_ui' => true,
    'show_admin_column' => true,
    'hierarchical' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'listings' )
);

ところで、argsという名前のパラメータはありません、私はそれを削除しました。

  1. 今、私はそれぞれのためにページを作成し、それらにカスタムテンプレートページを持たせることができることを知っていますが、私のクライアントがページとページテンプレートを作成しなければならない場合があります。

テンプレート階層イメージを見ると、どのテンプレートファイルを使用する必要があるのか​​がはっきりしているはずです。これはカスタム分類法のためのトリミングバージョンです。

template hierarchy for custom taxonomy

cat_listingsの下のすべてのtermsに単一のテンプレートを適用したい場合は、テンプレートファイルtaxonomy-cat_listings.phpを作成するだけです。後で追加するtermsのいずれかに別のテンプレートファイルを作成する場合(leaseなど)は、テンプレートファイルtaxonomy-cat_listings-lease.phpなどを作成する必要があります。

0
sakibmoon