Search code examples
phpwordpresswordpress-themingcustom-post-type

How do I add a custom post type to the admin menu?


Do I have the file in the wrong folder?

All of this code just ends up as text on my admin menu after adding it. I have tried putting it directly into my functions.php and also putting it in a file called function.php which is what the tutorial said which I believe is a typo.

themes/theme-name/wp-includes/post.php
function ttlm_register_team_custom_type() {
    $labels = array(
        'name'               => _x( 'Teams', 'post type general name', 'your-plugin-textdomain' ),
        'singular_name'      => _x( 'Team', 'post type singular name', 'your-plugin-textdomain' ),
        'menu_name'          => _x( 'Teams', 'admin menu', 'your-plugin-textdomain' ),
        'name_admin_bar'     => _x( 'Team', 'add new on admin bar', 'your-plugin-textdomain' ),
        'add_new'            => _x( 'Add New', 'team', 'your-plugin-textdomain' ),
        'add_new_item'       => __( 'Add New Team', 'your-plugin-textdomain' ),
        'new_item'           => __( 'New Team', 'your-plugin-textdomain' ),
        'edit_item'          => __( 'Edit Team', 'your-plugin-textdomain' ),
        'view_item'          => __( 'View Team', 'your-plugin-textdomain' ),
        'all_items'          => __( 'All Teams', 'your-plugin-textdomain' ),
        'search_items'       => __( 'Search Teams', 'your-plugin-textdomain' ),
        'parent_item_colon'  => __( 'Parent Teams:', 'your-plugin-textdomain' ),
        'not_found'          => __( 'No teams found.', 'your-plugin-textdomain' ),
        'not_found_in_trash' => __( 'No teams found in Trash.', 'your-plugin-textdomain' )
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true, 
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'ttlm_team' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => null,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
    );

    register_post_type( 'ttlm_team', $args );
}

add_action( 'init', 'ttlm_register_team_custom_type' );
themes/theme-name/functions.php
/*-----------------------------------------------*/
/* Custom Post Types
/*-----------------------------------------------*/
require_once('wp-includes/post.php');

WP admin showing code


Solution

  • Include your code in:

    <?php
    
    //your functions
    
    ?>
    

    Hope it helps