web-dev-qa-db-ja.com

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

私はportfolioと呼ばれるカスタム投稿タイプを持っています、そしてそれにタグ分類を追加しようとしています、どうやってこれをしますか?

25
Joe Bobby

このように:(それが「ポートフォリオ」を言うところはあなたがポストタイプに分類学を登録するところです

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' ),
  ));
}
?>
15
chifliiiii

または単に追加:

'taxonomies' => array('post_tag')

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

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

53
Marcus

これを使って:

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

このコードを使用してください。

 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 
            )  
        );
}
0
user25225

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

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

  • メリット

    • 1行ですべてのものが箱から出して動くはずです。

    • すべてのタグをCMSの一箇所に

  • 欠点

    • CMSの構造化が簡単で使いやすいことを忘れてください - カスタム投稿タイプページのタグリストには、(カスタム投稿タイプ記事で使用されているタグだけではなく)すべてのタグが誤った数で表示されます。
    • タグを変更すると、デフォルトの「投稿」記事とカスタム投稿タイプの記事が影響を受けます(タグを削除すると、両方のタイプの記事で削除されます)。
    • 異なるタグ機能を設定するのは(おそらく不可能)困難です:(少なくともWordpressのコアコードの上にカスタムコーディングをあまりしなくても)さまざまな説明、カスタムフィールド、画像など...

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

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

  • メリット

    • 異なる/明らかに異なるタグ関連の機能を作成する :フロントエンドのテンプレート、機能、クエリフィルタ、アクション)
    • 異なるタグ関連データを割り当てます :フィールドデータ、さらにはカスタムフィールド
    • CMSでタグを管理しやすくする
      • : "post"タグを編集/削除しても、他の投稿タイプの(同じような名前の/ slugged)タグには影響しません。
  • トレードオフ

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

実のところ、それらはあらゆる方法でさまざまな項目をグループ化するための非常に強力な方法です。 https://codex.wordpress.org/Taxonomies#Custom_Taxonomies

0
P-S