カスタム投稿タイプにタグを追加する方法は?


28

と呼ばれるカスタム投稿タイプがportfolioあり、タグ分類法を追加しようとしていますが、これを行うにはどうすればよいですか?


@chifliiiii私がそうすれば、カテゴリとタグは投稿に使用されるものと同じです。新しい投稿タイプ専用のカテゴリとタグを取得するにはどうすればよいですか?
トロイテンプルマン

@chifliiiiiテンプレートにタグを表示するのですか?
マックス

回答:


15

このように:(「ポートフォリオ」とは、分類を投稿タイプに登録する場所です。

add_action( 'init', 'create_tag_taxonomies', 0 );

//create two taxonomies, genres and tags for the post type "tag"
function create_tag_taxonomies() 
{
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ), 
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'menu_name' => __( 'Tags' ),
  ); 

  register_taxonomy('tag','portfolio',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'tag' ),
  ));
}
?>

:それはおそらく、利用できるすべてのオプションのためのより良い感覚を得るためにタクソノミーを登録するためのWordPress Codexのページチェックアウトする価値があるだろう@JoeBobby codex.wordpress.org/Function_Reference/register_taxonomyを
スティーブンS.

8
これは、既存の「post_tag」分類法をカスタム投稿タイプに追加する代わりに、「tag」と呼ばれるまったく新しい分類法を作成していることに注意してください。
ジェイク

@chifliiiiiタグリンクを使用してこれらのタグを単一ページの投稿で取得する方法、タグページのテンプレートを作成する方法
Dinesh

1
私はジェイクに同意します、これは問題を解決しないように感じます。@Marcusの回答は、承認済みとしてマークされたものでなければなりません。
クレイグウェイン

58

または単に追加します:

'taxonomies' => array('post_tag')

categoryまたはpost_tagこの投稿タイプで使用される登録済みの分類法の配列。これは、register_taxonomy_for_object_type()直接呼び出す代わりに使用できます。カスタム分類は、まだ登録する必要がありますregister_taxonomy()

を使用して、カスタム投稿タイプを作成する-ファイル$args内の配列にfunctions.php追加しますregister_post_type()


2
あなたの答えに説明を追加してください:なぜそれが問題を解決できるのでしょうか?
FUXIA

5

これを使って:

add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
    register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};

1

方法1(上記の回答から:https : //wordpress.stackexchange.com/a/106211/38771

異なる投稿タイプは、デフォルトの「投稿」タイプの同じ「タグ」データを使用します。

  • 利点

    • すべてが(1行で箱から出して動作するはずです)

    • CMSのすべてのタグを1か所で

  • 欠点

    • よく構成された/使いやすいCMSを忘れてください-カスタム投稿タイプページのタグリストには、間違ったカウントのすべてのタグ(カスタム投稿タイプの記事で使用されているタグだけでなく)が表示されます...
    • タグを変更すると、デフォルトの「投稿」記事とカスタム投稿タイプの記事に影響します(タグを削除すると、両方の種類の記事で削除されます)
    • 個別のタグ機能を設定するのが難しい(おそらく不可能):異なる説明、カスタムフィールド、画像など(少なくとも、コアWordpressコードの上に多くのカスタムコーディングがなければ)...

方法2(上記の回答から:https : //wordpress.stackexchange.com/a/62263/38771

異なる投稿タイプは異なる「タグ」設定/データを使用します。

  • 利点

    • 異なる/明確に異なるタグ関連機能を作成する:フロントエンドテンプレート、機能、クエリフィルター、アクション)
    • さまざまなタグ関連データを割り当てます:フィールドデータまたはカスタムフィールド
    • CMSでタグをより適切に管理する
      • :「投稿」タグの編集/削除は、他の投稿タイプの(同様に名前が付けられた/スラッグされた)タグには影響しません
  • トレード・オフ

    もう少しセットアップするコード

事実、これらはあらゆる種類の方法でさまざまなアイテムをグループ化する非常に強力な方法です。https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


方法1:多数のトピック/リーグ/スポーツをカバーする大きなスポーツWebサイトの例です。たとえば、「NBA」、「NHL」、「Basketball」、「Olympics」、「Steroids」、「College」などのタグが付いています。 t +100タグと4つの投稿タイプ(デフォルトの投稿タイプと3つのカスタム投稿タイプ)を複製して管理するのは理にかなっています。欠点については、タグカウントデータが非常に特殊な場合は、そのためのカスタムビューを作成できます。投稿タイプごとの同様のカスタムタグについては、現時点では明らかなニーズはないようです(考えてみてください...例を必要とします)。
MarsAndBack

はい。ただし、投稿タイプごとに異なるタグパーマリンクは自動的に存在しません。タグ「playoffs」には、すべての投稿タイプに対して「/ tag / playoffs」が付きます。次に、書き換えルールを設定するか、GET paramsを使用して異なるパーマリンクを作成する必要があります...投稿タイプごとに異なる分類を使用して、投稿タイプごとの「プレイオフ」タグごとに独自のパーマリンクがあり、Wordpressのテンプレートを使用してカスタマイズできます階層。NBA、NHLで異なる「プレイオフ」ページが異なる場合、それは良いことです...私は分類(カスタムフィールド、分類画像、説明)のカスタマイズレベルでサイトで作業しました
PS

1
あなたの言っていることがわかります。したがって、CPTごとに異なるタグ分類法を使用する場合、ある税の用語を追加/編集するときに他の税、つまり税全体で一意の用語を同期するように変更することはどうですか?たとえば、「バスケットボール」を1回定義し、投稿タグ税で定義し、保存をクリックすると、「バスケットボール」もCPTの他の税と重複して一意に作成されます。したがって、タグを1回入力/編集すると、変更は複数のタグ税に反映されます。最終的には、1つの宛先でタグ管理が行われ、さらに望ましいパーマリンクの状況が得られます。
MarsAndBack

サイトが複数のCPTに対して同じ基本的な分類情報(タイトル)を共有し、これらの分類(カスタムフィールド、画像など)を異なるCPTに対してさらにカスタマイズするオプションを提供する場合、実際には素晴らしい方法です。いいね!
PS

0

このコードを使用するだけで役立つかもしれません

 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}

承認済みの回答のストリップバージョン。また、これにより、既存の「post_tag」分類法を使用するのではなく、まったく新しい分類法が追加されます。
acidrums4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.