Skip to main content
appended answer 158144 as supplemental
Source Link
Rarst
  • 99.9k
  • 10
  • 160
  • 298

This is my new post type function

<?php
// Register Custom Post Type
function project_post_type() {

    $labels = array(
        'name'                => _x( 'Projects', 'Post Type General Name', 'text_domain' ),
        'singular_name'       => _x( 'Project', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'           => __( 'Project', 'text_domain' ),
        'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
        'all_items'           => __( 'All Items', 'text_domain' ),
        'view_item'           => __( 'View Item', 'text_domain' ),
        'add_new_item'        => __( 'Add New Item', 'text_domain' ),
        'add_new'             => __( 'Add New', 'text_domain' ),
        'edit_item'           => __( 'Edit Item', 'text_domain' ),
        'update_item'         => __( 'Update Item', 'text_domain' ),
        'search_items'        => __( 'Search Item', 'text_domain' ),
        'not_found'           => __( 'Not found', 'text_domain' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
    );
    $args = array(
        'label'               => __( 'project_post_type', 'text_domain' ),
        'description'         => __( 'Project Description', 'text_domain' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'thumbnail', ),
        'taxonomies'          => array( 'category', 'post_tag' ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_icon' => get_template_directory_uri() . '/img/project-icon.png',
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
    );
    register_post_type( 'project_post_type', $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_post_type', 0 );


// Register Custom Taxonomy
function project_taxonomy() {

    $labels = array(
        'name'                       => _x( 'Projects', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Project', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Project', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'project', array( 'post' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_taxonomy', 0 );


function theme_prefix_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );

and this is template function

<?php
  $args = array(
  'post_type' => 'project',
   'tax_query' => array(
    array(
    'taxonomy' => 'Initiatieffase',
     'field' => 'slug',
      'terms' => 'bob'
       )
     )
  );
$query = new WP_Query( $args );
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post(); ?>
<li>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a></li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>

but its still showing nothing


This is my new post type function

<?php
// Register Custom Post Type
function project_post_type() {

    $labels = array(
        'name'                => _x( 'Projects', 'Post Type General Name', 'text_domain' ),
        'singular_name'       => _x( 'Project', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'           => __( 'Project', 'text_domain' ),
        'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
        'all_items'           => __( 'All Items', 'text_domain' ),
        'view_item'           => __( 'View Item', 'text_domain' ),
        'add_new_item'        => __( 'Add New Item', 'text_domain' ),
        'add_new'             => __( 'Add New', 'text_domain' ),
        'edit_item'           => __( 'Edit Item', 'text_domain' ),
        'update_item'         => __( 'Update Item', 'text_domain' ),
        'search_items'        => __( 'Search Item', 'text_domain' ),
        'not_found'           => __( 'Not found', 'text_domain' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
    );
    $args = array(
        'label'               => __( 'project_post_type', 'text_domain' ),
        'description'         => __( 'Project Description', 'text_domain' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'thumbnail', ),
        'taxonomies'          => array( 'category', 'post_tag' ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_icon' => get_template_directory_uri() . '/img/project-icon.png',
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
    );
    register_post_type( 'project_post_type', $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_post_type', 0 );


// Register Custom Taxonomy
function project_taxonomy() {

    $labels = array(
        'name'                       => _x( 'Projects', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Project', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Project', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'project', array( 'post' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_taxonomy', 0 );


function theme_prefix_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );

and this is template function

<?php
  $args = array(
  'post_type' => 'project',
   'tax_query' => array(
    array(
    'taxonomy' => 'Initiatieffase',
     'field' => 'slug',
      'terms' => 'bob'
       )
     )
  );
$query = new WP_Query( $args );
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post(); ?>
<li>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a></li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>

but its still showing nothing

Add edit from answer
Source Link
Pieter Goosen
  • 55.4k
  • 23
  • 115
  • 209

custom Custom post types category

thisThis is my custom post type code with custom taxonomy

$args = array(
'post_type' => 'project',
'posts_per_page' => 200, 
'cat' => 'Initiatieffase'
    );
$loop = new WP_Query($args); while ($loop->have_posts()) : $loop->the_post();
echo '<li><a href="' . the_permalink() . '">' . the_post_thumbnail() . '</a></li>';
endwhile;
wp_reset_query();

EDIT

This is my new post type function

<?php
// Register Custom Post Type
function project_post_type() {

    $labels = array(
        'name'                => _x( 'Projects', 'Post Type General Name', 'text_domain' ),
        'singular_name'       => _x( 'Project', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'           => __( 'Project', 'text_domain' ),
        'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
        'all_items'           => __( 'All Items', 'text_domain' ),
        'view_item'           => __( 'View Item', 'text_domain' ),
        'add_new_item'        => __( 'Add New Item', 'text_domain' ),
        'add_new'             => __( 'Add New', 'text_domain' ),
        'edit_item'           => __( 'Edit Item', 'text_domain' ),
        'update_item'         => __( 'Update Item', 'text_domain' ),
        'search_items'        => __( 'Search Item', 'text_domain' ),
        'not_found'           => __( 'Not found', 'text_domain' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
    );
    $args = array(
        'label'               => __( 'project_post_type', 'text_domain' ),
        'description'         => __( 'Project Description', 'text_domain' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'thumbnail', ),
        'taxonomies'          => array( 'category', 'post_tag' ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_icon' => get_template_directory_uri() . '/img/project-icon.png',
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
    );
    register_post_type( 'project_post_type', $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_post_type', 0 );


// Register Custom Taxonomy
function project_taxonomy() {

    $labels = array(
        'name'                       => _x( 'Projects', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Project', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Project', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'project', array( 'post' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_taxonomy', 0 );


function theme_prefix_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );

and this is template function

<?php
  $args = array(
  'post_type' => 'project',
   'tax_query' => array(
    array(
    'taxonomy' => 'Initiatieffase',
     'field' => 'slug',
      'terms' => 'bob'
       )
     )
  );
$query = new WP_Query( $args );
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post(); ?>
<li>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a></li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>

but its still showing nothing

custom post types category

this is my custom post type code with custom taxonomy

$args = array(
'post_type' => 'project',
'posts_per_page' => 200, 
'cat' => 'Initiatieffase'
    );
$loop = new WP_Query($args); while ($loop->have_posts()) : $loop->the_post();
echo '<li><a href="' . the_permalink() . '">' . the_post_thumbnail() . '</a></li>';
endwhile;
wp_reset_query();

Custom post types category

This is my custom post type code with custom taxonomy

$args = array(
'post_type' => 'project',
'posts_per_page' => 200, 
'cat' => 'Initiatieffase'
    );
$loop = new WP_Query($args); while ($loop->have_posts()) : $loop->the_post();
echo '<li><a href="' . the_permalink() . '">' . the_post_thumbnail() . '</a></li>';
endwhile;
wp_reset_query();

EDIT

This is my new post type function

<?php
// Register Custom Post Type
function project_post_type() {

    $labels = array(
        'name'                => _x( 'Projects', 'Post Type General Name', 'text_domain' ),
        'singular_name'       => _x( 'Project', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'           => __( 'Project', 'text_domain' ),
        'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
        'all_items'           => __( 'All Items', 'text_domain' ),
        'view_item'           => __( 'View Item', 'text_domain' ),
        'add_new_item'        => __( 'Add New Item', 'text_domain' ),
        'add_new'             => __( 'Add New', 'text_domain' ),
        'edit_item'           => __( 'Edit Item', 'text_domain' ),
        'update_item'         => __( 'Update Item', 'text_domain' ),
        'search_items'        => __( 'Search Item', 'text_domain' ),
        'not_found'           => __( 'Not found', 'text_domain' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
    );
    $args = array(
        'label'               => __( 'project_post_type', 'text_domain' ),
        'description'         => __( 'Project Description', 'text_domain' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'thumbnail', ),
        'taxonomies'          => array( 'category', 'post_tag' ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_icon' => get_template_directory_uri() . '/img/project-icon.png',
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
    );
    register_post_type( 'project_post_type', $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_post_type', 0 );


// Register Custom Taxonomy
function project_taxonomy() {

    $labels = array(
        'name'                       => _x( 'Projects', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Project', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Project', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'project', array( 'post' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'project_taxonomy', 0 );


function theme_prefix_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );

and this is template function

<?php
  $args = array(
  'post_type' => 'project',
   'tax_query' => array(
    array(
    'taxonomy' => 'Initiatieffase',
     'field' => 'slug',
      'terms' => 'bob'
       )
     )
  );
$query = new WP_Query( $args );
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post(); ?>
<li>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a></li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>

but its still showing nothing

added 3305 characters in body
Source Link

this is my custom post type code with custom texonomytaxonomy

 <?php
    /**
     * Registers a custom post type.
 *
 * @link http://codex.wordpress.org/Function_Reference/register_post_type
 */
    function Project_post_type()
{
    register_post_type({
        'Project',register_post_type(
        array(
        'Project',
    'labels'        array(
    'labels'   => array(
           => array(
    'name'                => __('Project', 'text_domain'),
                'singular_name'       => __('Project', 'text_domain'),
                'menu_name'           => __('Project', 'text_domain'),
                'name_admin_bar'      => __('Project Item', 'text_domain'),
                'all_items'           => __('All Items', 'text_domain'),
                'add_new'             => _x('Add New', 'prefix_portfolio', 'text_domain'),
                'add_new_item'        => __('Add New Item', 'text_domain'),
                'edit_item'           => __('Edit Item', 'text_domain'),
                'new_item'            => __('New Item', 'text_domain'),
                'view_item'           => __('View Item', 'text_domain'),
                'search_items'        => __('Search Items', 'text_domain'),
                'not_found'           => __('No items found.', 'text_domain'),
                'not_found_in_trash'  => __('No items found in Trash.', 'text_domain'),
                'parent_item_colon'   => __('Parent Items:', 'text_domain'),
            ),
        ),
    'public'               => true,
            'menu_position'        => 5,
            'supports'     => array(
       => array(
            'title',
    'title',
                'editor',
                'thumbnail',
    'thumbnail',
            'excerpt',
        'excerpt',
        'custom-fields',
            )'custom-fields',
            'taxonomies'    ),
    'taxonomies'   => array(
                'Project_categories',
        'Project_categories',
    ),
            ),
            'menu_icon'      
    'menu_icon'   => get_template_directory_uri() . '/img/project-icon.png',
            'has_archive'          => true,
            'query_var'            => true,
            'rewrite'              => array(
                'slug'                => 'Project',
     ),
    )
   ),;
    }
    )
    );
}

add_action('init', 'Project_post_type');
    
    
    /**
     * Registers a custom taxonomy.
 *
 * @link http://codex.wordpress.org/Function_Reference/register_taxonomy
 */
    function Project_taxonomy()
    {
        register_taxonomy(
            'Project_categories',
        array(
    array(
        'Project',
        )'Project',
        array(
    ),
    array(
    'labels'               => array(
                'name'                => _x('Categories', 'prefix_portfolio', 'text_domain'),
                'singular_name'       => _x('Category', 'prefix_portfolio', 'text_domain'),
                'menu_name'           => __('Categories', 'text_domain'),
                'all_items'           => __('All Categories', 'text_domain'),
                'edit_item'           => __('Edit Category', 'text_domain'),
                'view_item'           => __('View Category', 'text_domain'),
                'update_item'         => __('Update Category', 'text_domain'),
                'add_new_item'        => __('Add New Category', 'text_domain'),
                'new_item_name'       => __('New Category Name', 'text_domain'),
                'parent_item'         => __('Parent Category', 'text_domain'),
                'parent_item_colon'   => __('Parent Category:', 'text_domain'),
                'search_items'        => __('Search Categories', 'text_domain'),
            ),
        ),
    'show_admin_column'    => true,
            'hierarchical'         => true,
            'rewrite'              => array(
                'slug'                => 'portfolio/category',
            ),
        )
    );
}
    
add_action('init', 'Project_taxonomy', 0);
 

function theme_prefix_rewrite_flush() {
    flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );
?>

this is my custom post type code with custom texonomy

<?php
/**
 * Registers a custom post type.
 *
 * @link http://codex.wordpress.org/Function_Reference/register_post_type
 */
function Project_post_type()
{
    register_post_type(
        'Project',
        array(
            'labels'               => array(
                'name'                => __('Project', 'text_domain'),
                'singular_name'       => __('Project', 'text_domain'),
                'menu_name'           => __('Project', 'text_domain'),
                'name_admin_bar'      => __('Project Item', 'text_domain'),
                'all_items'           => __('All Items', 'text_domain'),
                'add_new'             => _x('Add New', 'prefix_portfolio', 'text_domain'),
                'add_new_item'        => __('Add New Item', 'text_domain'),
                'edit_item'           => __('Edit Item', 'text_domain'),
                'new_item'            => __('New Item', 'text_domain'),
                'view_item'           => __('View Item', 'text_domain'),
                'search_items'        => __('Search Items', 'text_domain'),
                'not_found'           => __('No items found.', 'text_domain'),
                'not_found_in_trash'  => __('No items found in Trash.', 'text_domain'),
                'parent_item_colon'   => __('Parent Items:', 'text_domain'),
            ),
            'public'               => true,
            'menu_position'        => 5,
            'supports'             => array(
                'title',
                'editor',
                'thumbnail',
                'excerpt',
                'custom-fields',
            ),
            'taxonomies'           => array(
                'Project_categories',
            ),
            
            'menu_icon'            => get_template_directory_uri() . '/img/project-icon.png',
            'has_archive'          => true,
            'query_var'            => true,
            'rewrite'              => array(
                'slug'                => 'Project',
            ),
        )
    );
}

add_action('init', 'Project_post_type');


/**
 * Registers a custom taxonomy.
 *
 * @link http://codex.wordpress.org/Function_Reference/register_taxonomy
 */
function Project_taxonomy()
{
    register_taxonomy(
        'Project_categories',
        array(
            'Project',
        ),
        array(
            'labels'               => array(
                'name'                => _x('Categories', 'prefix_portfolio', 'text_domain'),
                'singular_name'       => _x('Category', 'prefix_portfolio', 'text_domain'),
                'menu_name'           => __('Categories', 'text_domain'),
                'all_items'           => __('All Categories', 'text_domain'),
                'edit_item'           => __('Edit Category', 'text_domain'),
                'view_item'           => __('View Category', 'text_domain'),
                'update_item'         => __('Update Category', 'text_domain'),
                'add_new_item'        => __('Add New Category', 'text_domain'),
                'new_item_name'       => __('New Category Name', 'text_domain'),
                'parent_item'         => __('Parent Category', 'text_domain'),
                'parent_item_colon'   => __('Parent Category:', 'text_domain'),
                'search_items'        => __('Search Categories', 'text_domain'),
            ),
            'show_admin_column'    => true,
            'hierarchical'         => true,
            'rewrite'              => array(
                'slug'                => 'portfolio/category',
            ),
        )
    );
}

add_action('init', 'Project_taxonomy', 0);
 

function theme_prefix_rewrite_flush() {
    flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );
?>

this is my custom post type code with custom taxonomy

 <?php
    /**
     * Registers a custom post type.
     */
    function Project_post_type()
    {
        register_post_type(
            'Project',
            array(
    'labels'               => array(
    'name'                => __('Project', 'text_domain'),
    'singular_name'       => __('Project', 'text_domain'),
    'menu_name'           => __('Project', 'text_domain'),
    'name_admin_bar'      => __('Project Item', 'text_domain'),
    'all_items'           => __('All Items', 'text_domain'),
    'add_new'             => _x('Add New', 'prefix_portfolio', 'text_domain'),
    'add_new_item'        => __('Add New Item', 'text_domain'),
    'edit_item'           => __('Edit Item', 'text_domain'),
    'view_item'           => __('View Item', 'text_domain'),
    'search_items'        => __('Search Items', 'text_domain'),
    'not_found'           => __('No items found.', 'text_domain'),
    'not_found_in_trash'  => __('No items found in Trash.', 'text_domain'),
    'parent_item_colon'   => __('Parent Items:', 'text_domain'),
                ),
    'public'     => true,
    'menu_position'  => 5,
    'supports'    => array(
                    'title',
                    'editor',
                    'thumbnail',
                    'excerpt',
                    'custom-fields',
                ),
    'taxonomies'   => array(
                    'Project_categories',
                ),
                 
    'menu_icon'   => get_template_directory_uri() . '/img/project-icon.png',
    'has_archive' => true,
    'query_var'  => true,
    'rewrite' => array(
    'slug'    => 'Project',
    ),
    )
   );
    }
    
    add_action('init', 'Project_post_type');
    
    
    /**
     * Registers a custom taxonomy.
     */
    function Project_taxonomy()
    {
        register_taxonomy(
            'Project_categories',
            array(
                'Project',
            ),
    array(
    'labels'               => array(
    'name'                => _x('Categories', 'prefix_portfolio', 'text_domain'),
    'singular_name'       => _x('Category', 'prefix_portfolio', 'text_domain'),
    'menu_name'           => __('Categories', 'text_domain'),
    'all_items'           => __('All Categories', 'text_domain'),
    'edit_item'           => __('Edit Category', 'text_domain'),
    'view_item'           => __('View Category', 'text_domain'),
    'update_item'         => __('Update Category', 'text_domain'),
    'add_new_item'        => __('Add New Category', 'text_domain'),
    'new_item_name'       => __('New Category Name', 'text_domain'),
    'parent_item'         => __('Parent Category', 'text_domain'),
     'parent_item_colon'   => __('Parent Category:', 'text_domain'),
    'search_items'        => __('Search Categories', 'text_domain'),
                ),
    'show_admin_column'    => true,
    'hierarchical'   => true,
   'rewrite'   => array(
  'slug'    => 'portfolio/category',
 ),
)
);
}
    
add_action('init', 'Project_taxonomy', 0);

function theme_prefix_rewrite_flush() {
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );
Code in code block
Source Link
Pieter Goosen
  • 55.4k
  • 23
  • 115
  • 209
Loading
added 3305 characters in body
Source Link
Loading
deleted 38 characters in body
Source Link
Loading
added 44 characters in body
Source Link
Brad Dalton
  • 7k
  • 2
  • 36
  • 47
Loading
Source Link
Loading