如何从Wordpress中自定义帖子类型的编辑器页面中删除“添加新”按钮?

时间:2018-06-26 04:29:29

标签: wordpress wordpress-theming custom-post-type

我有一个名为“ jxta_home”的自定义帖子类型。我已使用以下代码从子菜单和编辑页面中删除了添加新按钮-

<?php
function disable_new_posts() {

    global $submenu;
    unset($submenu['edit.php?post_type=jxta_home'][10]);

    // Hide link on listing page
    if (isset($_GET['post_type']) && $_GET['post_type'] == 'jxta_home')  {
        echo '<style type="text/css">
        .page-title-action, .submitdelete { display:none; }
        </style>';
    } 
}

但是添加新按钮仍显示在内部编辑器页面上。我也想从那里删除它。如何将其从内部编辑器页面中删除?

enter image description here

2 个答案:

答案 0 :(得分:0)

css有两个选项,而另一个将用于编码。

选项1:

function disable_new_posts() {
// Hide sidebar link
global $submenu;
unset($submenu['edit.php?post_type=jxta_home'][10]);

// Hide link on listing page
if (isset($_GET['post_type']) && $_GET['post_type'] == 'jxta_home') {
    echo '<style type="text/css">
    #favorite-actions, .add-new-h2, .tablenav { display:none; }
    </style>';
 }
}
add_action('admin_menu', 'disable_new_posts');

选项2

您在通过注册帖子类型传递参数时禁用添加新功能。

参数是:

  

create_posts'=>假

假设您具有以下代码:

$args = array(
    'label'               => __( 'Custom Post Type', 'text_domain' ),
    'description'         => __( 'Custom Post Type', 'text_domain' ),
    'capability_type' => 'custom_post_type',
    'capabilities' => array(
        'create_posts' => false
    )
);
register_post_type( 'custom_post_type', $args );

答案 1 :(得分:0)

您可以更改功能

使用 map_meta_cap create_posts 注册为true的帖子类型;

$args = array(
     'label'               => __( 'Custom Post Type', 'text_domain' ),
     'description'         => __( 'Custom Post Type', 'text_domain' ),
     'capability_type' => 'custom_post_type',

     'map_meta_cap'=>true,
     'capabilities' => array(
         'create_posts' => true
     )
);
register_post_type( 'custom_post_type', $args );

然后,您可以更改功能,并在 load-post.php 标签上添加操作。

add_action('load-post.php', 'remove_add_button');

function remove_add_button() {
   if( get_post_type($_GET['post']) == 'MY-CUSTOM-POST-TYPE' ) {
     global $wp_post_types;

     $wp_post_types['MY-CUSTOM-POST-TYPE']->map_meta_cap = true;
     $wp_post_types['MY-CUSTOM-POST-TYPE']->cap->create_posts = false;
   }
}