2012-05-10 36 views
0

我在wordpress上使用woocommerce插件 - woocommerce爲您註冊許多分類。重寫wordpress插件的分類註冊設置而不修改核心文件

我想將show_in_nav_menus設置更改爲true,但我聽說它修改核心文件的方式很糟糕。

有沒有一種方法來覆蓋它只是在我的主題的functions.php的 - 它的代碼的最後一個參數下面我需要改變,以真正

register_post_type("product", 
     array(
      'labels' => array(
        'name'     => __('Products', 'woocommerce'), 
        'singular_name'   => __('Product', 'woocommerce'), 
        'add_new'    => __('Add Product', 'woocommerce'), 
        'add_new_item'   => __('Add New Product', 'woocommerce'), 
        'edit'     => __('Edit', 'woocommerce'), 
        'edit_item'    => __('Edit Product', 'woocommerce'), 
        'new_item'    => __('New Product', 'woocommerce'), 
        'view'     => __('View Product', 'woocommerce'), 
        'view_item'    => __('View Product', 'woocommerce'), 
        'search_items'   => __('Search Products', 'woocommerce'), 
        'not_found'    => __('No Products found', 'woocommerce'), 
        'not_found_in_trash' => __('No Products found in trash', 'woocommerce'), 
        'parent'    => __('Parent Product', 'woocommerce') 
       ), 
      'description'   => __('This is where you can add new products to your store.', 'woocommerce'), 
      'public'    => true, 
      'show_ui'    => true, 
      'capability_type'  => 'post', 
      'capabilities' => array(
       'publish_posts'   => 'manage_woocommerce_products', 
       'edit_posts'   => 'manage_woocommerce_products', 
       'edit_others_posts'  => 'manage_woocommerce_products', 
       'delete_posts'   => 'manage_woocommerce_products', 
       'delete_others_posts' => 'manage_woocommerce_products', 
       'read_private_posts' => 'manage_woocommerce_products', 
       'edit_post'    => 'manage_woocommerce_products', 
       'delete_post'   => 'manage_woocommerce_products', 
       'read_post'    => 'manage_woocommerce_products' 
      ), 
      'publicly_queryable' => true, 
      'exclude_from_search' => false, 
      'hierarchical'   => false, // Hierarcal causes memory issues - WP loads all records! 
      'rewrite'    => array('slug' => $product_base, 'with_front' => false, 'feeds' => $base_slug), 
      'query_var'    => true,    
      'supports'    => array('title', 'editor', 'excerpt', 'thumbnail', 'comments', 'custom-fields'), 
      'has_archive'   => $base_slug, 
      'show_in_nav_menus'  => true 
     ) 
    ); 

回答

0

你可以把它看成是你的功能。 PHP文件,它會覆蓋插件中的一個。 小心從初始化動作稱之爲:

add_action('init', 'register_my_post_type'); 
function register_my_post_type() { 
    /* here */ 
} 

,並確保這將運行你的插件初始化動作之後。也許這將需要增加一個較低的優先級:

add_action('init', 'register_my_post_type', 1000); 
// 1000 -> lower priority, will run after the plugin init action 
+0

可愛jubbly - 所以只是爲了澄清,我基本上我只是覆蓋它 - 這是否適用於任何功能?我似乎沒有回想起當我試圖做這種事情時,我得到了一個以前聲明的函數錯誤。 – JorgeLuisBorges