Redirectare a unui Custom Post Type către pagina principală

24 aug. 2016, 00:09:56
Vizualizări: 16.4K
Voturi: 2

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?

0
Toate răspunsurile la întrebare 3
2
14

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 );
24 aug. 2016 01:08:58
Comentarii

Mulțumesc pentru ajutor. Problema a fost cu siguranță public_queryable. L-am setat pe false și asta a dus la redirecționarea traficului. Mulțumesc,

Jake Wilson Jake Wilson
24 aug. 2016 19:51:11

Și la mine problema a fost public_queryable. Mulțumesc!

Gavin Gavin
10 apr. 2017 14:45:12
1

dacă ai înregistrat taxonomia ta cu register_post_type('employees',$args);

ai creat fișierul single-employees.php ?

și după în administrare / Setări / Legături permanente -> Salvează modificările

24 aug. 2016 00:18:17
Comentarii

Re-salvarea legăturilor permanente a rezolvat problema pentru mine. Mulțumesc

fanta fanta
7 dec. 2016 18:39:11
2

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); 
}
2 apr. 2019 22:19:22
Comentarii

Acesta este un punct bun. Poți să dai un exemplu de cod despre cum să realizezi asta?

MikeNGarrett MikeNGarrett
3 apr. 2019 05:01:33

Adăugat acum.

Nikos Nikos
4 apr. 2019 00:09:58