すべてが同じテーマを使用している場合は、親テーマのfunctions.phpにカスタム投稿タイプを宣言することができます(子テーマがある場合)。マルチサイトは同じプラグインとテーマを共有しているため、カスタムポストタイプはそのテーマを使用するすべてのサイトに登録されます。
カスタムフィールドは少し異なります。 Advanced Custom Fieldsのようなプラグインを使用することをお勧めしますが、これは各サイトに対してアクティブ化する必要があります。これらのカスタムフィールドをポスト編集画面ですぐに使用できるようにしたい場合は、必要なフィールドごとにadd_post_meta()
をID 1のポストに追加することができます。すべてのWordpressインスタンスは、IDが1のポスト。これらのフィールドは「事前登録」されます。 CategoryはすでにWordpress分類であり、ユーザを混乱させる可能性があるので、私は "Categories"投稿タイプとフィールドを除外しています。これは理想的な解決策ではありませんが、機能します。私は、Wordpressのインスタンスを自動的に展開する歯科用オフィスソフトウェアのカスタムフィールドをあらかじめ設定しておく必要がありました。
add_action('init', 'create_custom_post_types');
function create_custom_post_types() {
register_post_type('films',
array(
'labels' => array(
'name' => __('Films'),
'singular_name' => __('Film')
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'custom-fields')
)
);
register_post_type('actors',
array(
'labels' => array(
'name' => __('Actors'),
'singular_name' => __('Actor')
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'custom-fields')
)
);
}
// Check if the post meta has been added to our default post.
// If not, add our post_meta to make it available.
if(!get_post_meta(1, 'trailer_for_film')) {
add_post_meta(1, 'trailer_for_film', 'default trailer', true);
add_post_meta(1, 'actors', 'default actor', true);
}
同じテーマを共有しますか? – jboneca
はい、そうです! – Alan