Redirectare a unui Custom Post Type către pagina principală
Am un tip de postare personalizată înregistrată numită employees
. La înregistrarea acestui custom post type am folosit:
...
'rewrite' => array('slug' => 'people'),
...
Când trec cu mouse-ul peste un link către unul dintre angajații mei, văd URL-ul astfel:
www.example.com/people/john
Deci pare corect. Dar când dau click pe link, observ că Chrome navighează către www.example.com/john
și apoi, deoarece această pagină nu există, este redirecționat către www.example.com
(pagina principală).
Cum pot face ca navigarea să meargă corect către /people/john
și să opresc redirectarea către homepage?

Cele mai importante argumente pentru redirecționările rewrite atunci când înregistrați un nou tip de postare sunt:
- 'public' => true,
- 'publicly_queryable' => true,
- 'query_var' => true,
Am inserat mai jos un cod pe care l-am testat și funcționează corect pentru URL-ul: www.example.com/people/john
$labels_employee = <br/>array('name' => _x( 'Angajați', 'Nume general tip postare', 'textdomain' ),<br/>'singular_name' => _x( 'Angajat', 'Nume singular tip postare', 'textdomain' ),<br/>'menu_name' => _x( 'Angajați', 'Text meniu admin', 'textdomain' ),<br/>'name_admin_bar' => _x( 'Angajat', 'Adaugă nou în bara de unelte', 'textdomain' ),<br/>'add_new' => __( 'Adaugă nou', 'textdomain' ),<br/>'add_new_item' => __( 'Adaugă angajat nou', 'textdomain' ),<br/>'new_item' => __( 'Angajat nou', 'textdomain' ),<br/><br/>$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' ),
);<br/><br/>register_post_type( 'employee', $args_employee );

Am avut aceeași problemă, linkul pentru taxonomia personalizată redirecționa către index.
Atunci când înregistrezi o taxonomie personalizată, asigură-te că codul register_taxonomy rulează întotdeauna (hook-ul init) și nu doar în 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);
}
