2

I have a custom post type registered called employees. When registering this custom post type I used:

...
'rewrite' => array('slug' => 'people'),
...

Now, when I hover over a link to one of my employees I see the url as this:

www.example.com/people/john

So that seems correct. But I click the link, I see Chrome navigate to just www.example.com/john and then that doesn't exist so it redirects to www.example.com (the homepage).

How do I make it navigate to /people/john and stop it from redirecting to the homepage?

3 Answers 3

13

The most important args for rewrite redirects when registering new post type are:

  • 'public' => true,
  • 'publicly_queryable' => true,
  • 'query_var' => true,

I have pasted some code below which I have tested and it working fine for the url : www.example.com/people/john

$labels_employee = 
array('name' => _x( 'Employees', 'Post typegeneral name', 'textdomain' ),
'singular_name' => _x( 'Employee', 'Post type singular name', 'textdomain' ),
'menu_name' => _x( 'Employees', 'Admin Menu text', 'textdomain' ),
'name_admin_bar' => _x( 'Employee', 'Add New on Toolbar', 'textdomain' ),
'add_new' => __( 'Add New', 'textdomain' ),
'add_new_item' => __( 'Add New Employee', 'textdomain' ),
'new_item' => __( 'New Employee', 'textdomain' ),

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

register_post_type( 'employee', $args_employee );
2
  • 1
    Thank you for your help. The problem was definitely public_queryable. I had it to false and that ended up redirecting traffic. Thank you, Aug 24, 2016 at 16:51
  • Problem for me was public_queryable as well. Thanks!
    – Gavin
    Apr 10, 2017 at 11:45
1

if you have register your taxo with register_post_type('employees',$args);

have you create single-employees.php ?

and after in administration / Setting / Permalinks -> Save Changes

1
  • 1
    Re-saving permalinks solved it for me. Thanks
    – fanta
    Dec 7, 2016 at 16:39
0

I had the same issue, custom taxonomy link was redirecting to index.

Ok, when register a custom taxonomy, make sure that the register_taxonomy code runs always (init hook) and not only on admin (admin_init)

add_action('init', 'woobr_register_settings');
function woobr_register_settings()
{
    $args = array(
        //'labels' => $labels,
        //'labels' => 'Brand',
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'query_var' => true,
        'capability_type' => 'product',
        'has_archive' => true,
        'hierarchical' => false,
        'menu_position' => null,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),

    );

    register_taxonomy('woobrand', 'product', $args); 
}
2
  • This is a good point. Can you give a code example of how to achieve that? Apr 3, 2019 at 2:01
  • 1
    Added just now.
    – Nikos
    Apr 3, 2019 at 21:09

Your Answer

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

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