我是Wordpress Multisite的新手,我想知道是否可以定义一组自定义帖子类型(电影,类别和演员)和一组自定义字段(即电影有一个预告片字段,演员和每个新网站都有一个类别)。
我需要能够创建新网站,所有这些网站都必须预先配置CPT和CF.
是否可以使用Wordpress MU,还是应该找到其他解决方案?
答案 0 :(得分:0)
如果他们都使用相同的主题,您可以在父主题中的functions.php中声明每个自定义帖子类型(如果您有子主题)。由于多站点共享相同的插件和主题,因此将使用该主题为所有站点注册自定义帖子类型。
自定义字段略有不同。您可以使用我建议的Advanced Custom Fields这样的插件,但需要激活每个网站。如果您希望立即提供这些自定义字段以便在帖子编辑屏幕上使用,则可以将每个必填字段的add_post_meta()
添加到ID为1的帖子中。所有Wordpress实例都会有一个ID为1的帖子,默认帖子。然后,这些字段将被预先注册"。请注意,我忽略了"类别"你提到的帖子类型和字段,因为类别已经是Wordpress分类法,它可能会混淆用户。这不是一个理想的解决方案,但它确实有效。在预先填充自动部署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 );
}