2

I have a taxonomy called Section and a Custom post type called Developments.

What i need to achieve is a permalink on the taxonomy with custom post type prefixed: e.g:

  1. custom post type: development <- More than one custom post type so needs to be dynamic
  2. taxonomy: section
  3. term: casting

http://site.com/development/section/casting

What i have at the moment:

  1. taxonomy: section
  2. term: casting

http://site.com/section/casting

Permalink Structure: Post name

PS* Any help will be much appreciated:

// Register Section taxonomy for Development, Pre-Production, Shooting & Post-Production
add_action( 'init', 'jh_register_taxonomy_section' );

function jh_register_taxonomy_section() {

    $labels = array(
        'name' => _x( 'Sections', 'sections' ),
        'singular_name' => _x( 'Section', 'sections' ),
        'search_items' => _x( 'Search Sections', 'sections' ),
        'popular_items' => _x( 'Popular Sections', 'sections' ),
        'all_items' => _x( 'All Sections', 'sections' ),
        'parent_item' => _x( 'Parent Section', 'sections' ),
        'parent_item_colon' => _x( 'Parent Section:', 'sections' ),
        'edit_item' => _x( 'Edit Section', 'sections' ),
        'update_item' => _x( 'Update Section', 'sections' ),
        'add_new_item' => _x( 'Add New Section', 'sections' ),
        'new_item_name' => _x( 'New Section', 'sections' ),
        'separate_items_with_commas' => _x( 'Separate sections with commas', 'sections' ),
        'add_or_remove_items' => _x( 'Add or remove sections', 'sections' ),
        'choose_from_most_used' => _x( 'Choose from the most used sections', 'sections' ),
        'menu_name' => _x( 'Sections', 'sections' ),
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'show_in_nav_menus' => false,
        'show_ui' => true,
        'hierarchical' => true,
        'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
        'rewrite' => array('slug' => 'section', 'with_front' => true, 'hierarchical' => true),
        'query_var' => true
    );
    register_taxonomy('sections',array('development','shoot','pre_production','post_production'), $args );
}

// Register Developments custom post type
add_action('init', 'jh_register_developments');

function jh_register_developments() {

    $labels = array(
        'name' => __('Developments', 'development'),
        'singular_name' => __('Development', 'development'),
        'add_name' => __('Add New', 'development'),
        'not_found' => __('No developments found', 'development'),
        'not_found_in_trash' => __('No developments found in Trash', 'development'),
        'menu_name' => __('Development', 'development')
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'has_archive' => false,
        'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
        'can_export' => true,
        'rewrite' => true,
        'menu_position' => '35',
        'capability_type' => 'post'
    );

    register_post_type('development', $args);
}

1 Answer 1

1

Try changing the $args you are passing into the register_taxonomy method so that rewrite -> slug includes the development tag

$args = array(
        'labels' => $labels,
        'public' => true,
        'show_in_nav_menus' => false,
        'show_ui' => true,
        'hierarchical' => true,
        'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
        'rewrite' => array('slug' => 'development/section', 'with_front' => true, 'hierarchical' => true),
        'query_var' => true
    );
1
  • 1
    That works fine for only development post type, but this taxonomy is shared across other post types "shoot","pre_production","post_production" so i need a way to make that dynamic depending on the custom post type we're in. I will play around with get_post_type($post) and try and get that to work in the rewrite somehow and give some feedback.
    – Loxzibit
    Commented Mar 25, 2013 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.