Yamona
Yamona

Reputation: 1140

Custom post type archive page return blank

I created a CPT with slug plist via cutom plugin I made.

In my local host the archive work but in live server it return blank page.

Here is the archive page code

/**
 * Add Price List archive template
 * @since    1.0.0
*/
add_filter( 'archive_template', 'get_plist_archive_template' ) ;
function get_plist_archive_template( $archive_template ) {
     global $post;

     if ( is_post_type_archive ( 'plist' ) ) {
          $archive_template = dirname( __FILE__ ) . '\partials\archive-plist.php';
     }
     return $archive_template;
}

Link: http://cratetimer.com/plist/

Also this may help:

/**
 * Register Custom Post Type Price List
 * @since    1.0.0
*/
if ( ! function_exists('price_item_post_type') ) {
    add_action( 'init', 'price_item_post_type', 0 );
    // Register Custom Post Type
    function price_item_post_type() {

        $labels = array(
            'name'                  => _x( 'Price Lists', 'Post Type General Name', 'plist' ),
            'singular_name'         => _x( 'Price List', 'Post Type Singular Name', 'plist' ),
            'menu_name'             => __( 'Price List', 'plist' ),
            'name_admin_bar'        => __( 'Price List', 'plist' ),
            'archives'              => __( 'Price List Archives', 'plist' ),
            'attributes'            => __( 'Price List Attributes', 'plist' ),
            'parent_item_colon'     => __( 'Parent Price List:', 'plist' ),
            'all_items'             => __( 'All Price Lists', 'plist' ),
            'add_new_item'          => __( 'Add New Price List', 'plist' ),
            'add_new'               => __( 'Add New', 'plist' ),
            'new_item'              => __( 'New Price List', 'plist' ),
            'edit_item'             => __( 'Edit Price List', 'plist' ),
            'update_item'           => __( 'Update Price List', 'plist' ),
            'view_item'             => __( 'View Price List', 'plist' ),
            'view_items'            => __( 'View Price Lists', 'plist' ),
            'search_items'          => __( 'Search Price List', 'plist' ),
            'not_found'             => __( 'Not found', 'plist' ),
            'not_found_in_trash'    => __( 'Not found in Trash', 'plist' ),
            'featured_image'        => __( 'Featured Image', 'plist' ),
            'set_featured_image'    => __( 'Set featured image', 'plist' ),
            'remove_featured_image' => __( 'Remove featured image', 'plist' ),
            'use_featured_image'    => __( 'Use as featured image', 'plist' ),
            'insert_into_item'      => __( 'Insert into Price List', 'plist' ),
            'uploaded_to_this_item' => __( 'Uploaded to this Price List', 'plist' ),
            'items_list'            => __( 'Price Lists', 'plist' ),
            'items_list_navigation' => __( 'Price Lists navigation', 'plist' ),
            'filter_items_list'     => __( 'Filter Price Lists', 'plist' ),
        );
        $args = array(
            'label'                 => __( 'Price List', 'plist' ),
            'description'           => __( 'Price list item for market', 'plist' ),
            'labels'                => $labels,
            'supports'              => array( ),
            'hierarchical'          => false,
            'public'                => true,
            'show_ui'               => true,
            'show_in_menu'          => true,
            'menu_position'         => 20,
            'menu_icon'             => 'dashicons-tag',
            'show_in_admin_bar'     => true,
            'show_in_nav_menus'     => true,
            'can_export'            => true,
            'has_archive'           => true,        
            'exclude_from_search'   => true,
            'publicly_queryable'    => true,
            'capability_type'       => 'page',
        );
        register_post_type( 'plist', $args );

    }

}

I tried flush_rewrite_rules() and it didn't work.

Upvotes: 0

Views: 1223

Answers (1)

Lakhan Pal Singh
Lakhan Pal Singh

Reputation: 33

First thing you need to make sure is that your custom post type has archive enabled in the code. To do this, you need to go to your custom post type code (can be found in your theme’s functions.php file or site-specific plugin file). You need to make sure that you have has_archive argument set to be true.

An example code would look like this:

add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'plist',
        array(
            'labels' => array(
                'name' => __( 'plist' ),
                'singular_name' => __( 'plist' )
            ),
        'public' => true,
        'has_archive' => true,
        )
    );
}

Upvotes: 1

Related Questions