私はwordpressでdrupalサイトを再構築することを検討しています、そしてまだシステム間の違い - 特にcck/fieldsとカスタムコンテンツタイプと分類法を使うための異なる方法について私の頭を包んでいます。
2つのカスタムコンテンツタイプで1つのカスタム分類法を共有できるかどうかを知りたいです。 Drupalでは、特定のコンテンツタイプの投稿をユーザーのグループに限定することができます。その場合、その投稿は1つ以上の他のコンテンツタイプ(ただしすべてのタイプではない)と共有される分類法を持つことができます。
ロールスクーパーで可能に思われるユーザーの側面を残して、あなたはワードプレスでこれをすることができますか?カスタム分類のカスタムコンテンツタイプしか見たことがありませんが、2つの場所で再作成したり、カテゴリ/タグを通じてグローバルに有効化したりせずに、2つ以上のカスタムコンテンツタイプ間で特定の分類を共有する方法はありません。
ありがとう。
2つのカスタムコンテンツタイプで1つのカスタム分類法を共有できるかどうかを知りたいです。
簡単に言った: はい、彼らはすることができます 。
このブログ記事 で詳細に説明しているように、 常に登録する必要があります カスタム分類法と投稿の種類 できるだけ早く 。
登録プロセスをデフォルトの優先度でinit
フックにフックされた関数でラップします。
register_taxonomy(
'some_custom_tax',
'some_post_type',
$array_of_arguments
);
register_post_type(
'some_post_type',
[
'taxonomies' => [ 'some_custom_tax' ],
// other arguments
]
);
あなたが2を使用するかどうかは関係ありませんnd register_taxonomy()
の引数、またはregister_taxonomy_for_object_type()
を使用する場合は、どちらも同じです。これらは$GLOBALS['wp_taxonomies']
配列を受け取り、それにpost型オブジェクト(type)を割り当てます。
登録時にCTとCPTを相互に登録するようにしてください。そうでなければ、クエリフック中にその相互接続にアクセスすることはできません。
タクソノミー
(配列)(オプション)この投稿タイプで使用されるcategoryやpost_tagのような登録された分類法の配列。これは
register_taxonomy_for_object_type()
を直接呼び出す代わりに使うことができます。カスタム分類法は依然としてregister_taxonomy()
に登録する必要があります。
投稿タイプを登録するときには、それがサポートする分類法を割り当てるか、または他の時点で register_taxonomy_for_object_type()
を使用して分類法を投稿タイプに追加します。
分類は、好きなだけの種類の投稿に割り当てることができます。分類法は特定の投稿タイプに関連付けられていません。
分類を共有したいすべてのカスタム投稿タイプの配列を渡すことで、これを簡単に達成できました。そのため、私のコードは次のようになりました。
add_action( 'init', 'build_taxonomies', 0 );
function build_taxonomies() {
register_taxonomy( 'some_custom_tax', array('some_post_type_1','some_post_type_2'), array( 'hierarchical' => true, 'label' => 'Custom Tax Title', 'query_var' => true, 'rewrite' => true ) );
}