Change the edit page for a custom post type?

I’ve been looking for this all day and can’t find it.

I’m working on a custom contacts page and I am using the custom post type feature so that I can have more control over it. I’m looking to change the edit page to be a custom template, (example when I go to /wp-admin/post.php?post=1234&action=edit), I want it to show a custom page. I don’t need any meta boxes or anything. Perhaps the editor, but near the bottom of the page (not at the default top).

Read More

I’ve found how to remove the meta boxes, but I haven’t found how to get a clean slate on the CPT edit page.

function remove_metaboxes(){
    remove_meta_box('postexcerpt', 'obpcontacts', 'normal'); // Excerpt box
    remove_meta_box('commentstatusdiv', 'obpcontacts', 'normal'); // Comment status box
    remove_meta_box('commentsdiv', 'obpcontacts', 'normal'); // Comment box
}
add_action( 'add_meta_boxes', 'remove_metaboxes',11 );

Thoughts on how to create a custom template in the wp-admin edit section for my custom post type?

Related posts

2 comments

  1. As far as I know you can remove almost everything except the title h2 tag, and the .postbox-container border. Also note that the #message is not visible by default but can pop up depending on what you do.

    When you register your CPT set supports to an empty array.

    'supports' => array ('')
    

    Then you can use the following to unset the publish and slug (the slug in not visible by default but it is there under screen options),

    function remove_metaboxes(){
        remove_meta_box('slugdiv', 'obpcontacts', 'normal'); // Slug
        remove_meta_box('submitdiv', 'obpcontacts', 'side'); // Publish box
    }
    add_action( 'add_meta_boxes', 'remove_metaboxes', 11 );
    

    You will be left with a few elements that might need to be removed with javascript:

    //jQuery enqueue only on your CPT
    .removeClass("wrap");  //remove all CSS
    
  2. If you don’t need the functionality (as opposed to hiding the functionality) you can remove it entirely in the list of arguments supplied to register_post_type().

    This will only display the title and editor fields.

    $args = array(
        'supports' => array( 'title', 'editor' )
    ); 
    

    Possible supports:

    • ‘title’
    • ‘editor’ (content)
    • ‘author’
    • ‘thumbnail’ (featured image, current theme must also support post-thumbnails)
    • ‘excerpt’
    • ‘trackbacks’
    • ‘custom-fields’
    • ‘comments’ (also will see comment count balloon on edit screen)
    • ‘revisions’ (will store revisions)
    • ‘page-attributes’ (menu order, hierarchical must be true to show Parent option)
    • ‘post-formats’ add post formats, see Post Formats

Comments are closed.