无法重新声明create_post_type()(之前已声明

问题描述 投票:0回答:1

在一个wp安装中运行2个非常相似的插件。当试图激活一个新的时,我得到“无法重新声明先前声明的”错误。错误是指其中一个类似的插件。但是帖子类型实际上是不同的(代码如下)。服务器缓存已清除

新帖子类型

function create_post_type() {
  register_post_type( 'Related',
    array(
      'labels' => array(
        'name'               => 'Related',
        'singular_name'      => 'Related Unit',
        'menu_name'          => 'Related Units',
        'name_admin_bar'     => 'Related Unit',
        'add_new'            => 'Add New',
        'add_new_item'       => 'Add New Unit',
        'new_item'           => 'New Unit',
        'edit_item'          => 'Edit Unit',
        'view_item'          => 'View Unit',
        'all_items'          => 'All Units',
        'search_items'       => 'Search Units',
        'parent_item_colon'  => 'Parent Units:',
        'not_found'          => 'No units found.',
        'not_found_in_trash' => 'No units found in Trash.'
      ),
      'public' => true,
      'has_archive' => true,
      'rewrite' => true,
      'hierarchical' => true,
      'supports' => array( 
        'title', 
        'revisions'
    ),
    )
  );
  register_taxonomy("RelatedPlacements", array("Related"), array(
    "hierarchical" => true,
    "label" => "Related Placements",
    "singular_label" => "Related Placement",
    "rewrite" => true
    ));
}

add_action( 'init', 'create_post_type' ); 

而一个错误是指

function create_post_type() {
  register_post_type( 'Ads',
    array(
      'labels' => array(
        'name'               => 'Ads',
        'singular_name'      => 'Ad',
        'menu_name'          => 'Ads',
        'name_admin_bar'     => 'Ad',
        'add_new'            => 'Add New',
        'add_new_item'       => 'Add New Ad',
        'new_item'           => 'New Ad',
        'edit_item'          => 'Edit Ad',
        'view_item'          => 'View Ad',
        'all_items'          => 'All Ads',
        'search_items'       => 'Search Ads',
        'parent_item_colon'  => 'Parent Ads:',
        'not_found'          => 'No ads found.',
        'not_found_in_trash' => 'No ads found in Trash.'
      ),
      'public' => true,
      'has_archive' => true,
      'rewrite' => true,
      'hierarchical' => true,
      'supports' => array( 
        'title', 
        'revisions'
    ),
    )
  );
  register_taxonomy("Placements", array("ads"), array(
    "hierarchical" => true,
    "label" => "Placements",
    "singular_label" => "Placement",
    "rewrite" => true
    ));
}

add_action( 'init', 'create_post_type' );

我只是看不出这些是一样的

php wordpress
1个回答
2
投票

您不能在PHP中定义两个具有相同名称的函数。更改其中一个函数名称:

function create_related_post_type() {
   ...
}

add_action( 'init', 'create_related_post_type' );

由于Wordpress的程序代码库和插件冲突的巨大潜力,通常建议在函数前加上一个唯一的名称,如pluginname_create_post_type

© www.soinside.com 2019 - 2024. All rights reserved.