Wordpress Multisite中的自定义帖子类型和自定义字段

时间:2016-11-08 16:13:57

标签: php wordpress multisite

我是Wordpress Multisite的新手,我想知道是否可以定义一组自定义帖子类型(电影,类别和演员)和一组自定义字段(即电影有一个预告片字段,演员和每个新网站都有一个类别)。

我需要能够创建新网站,所有这些网站都必须预先配置CPT和CF.

是否可以使用Wordpress MU,还是应该找到其他解决方案?

1 个答案:

答案 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 );
}