Un custom post type può avere una Pagina Genitore?

15 gen 2013, 23:29:48
Visualizzazioni: 42.1K
Voti: 19

Ho visto molti post nel Web riguardo l'assegnazione di una pagina come genitore di un custom post type. Dopo quattro ore non riesco a trovare una soluzione e ho bisogno di aiuto. Ho creato una pagina "About" che è il genitore di una pagina "Our People". Ho anche creato un custom post type chiamato "People" e ho creato un template personalizzato per la pagina "Our People". La struttura dei permalink sembra corretta fino a quando non si arriva alla pagina singola "people". Per esempio: per la pagina di John Smith, il permalink non è corretto.

Custom post type:

Struttura Permalink Desiderata: /about-us/our-people/john-smith

Struttura Permalink Attuale: /our-people/john-smith

Struttura Pagina Our People: /about-us/our-people

Il "about-us" è una pagina, "our-people" è una pagina e anche lo slug di riscrittura per il custom post type "people". Ho provato a cambiare le impostazioni gerarchiche e ho provato ad aggiungere "about-us/our-people" direttamente nel rewrite senza successo.

Functions.php:

function codex_custom_init() {
    // Il Nostro Team
    $people_label = array(
        'name' => 'Team',
        'singular_name' => 'Team',
        'add_new' => 'Aggiungi Membro',
        'add_new_item' => 'Aggiungi Nuovo Membro',
        'edit_item' => 'Modifica Membro',
        'new_item' => 'Nuovo Membro',
        'all_items' => 'Tutti i Membri',
        'view_item' => 'Visualizza Membro',
        'search_items' => 'Cerca Membri',
        'not_found' => 'Nessun Membro trovato',
        'not_found_in_trash' => 'Nessun Membro trovato nel Cestino',
        'parent_item_colon' => '',
        'menu_name' => 'Team',
    );
    $people_args = array (
        'labels' => $people_label,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'our-people'),
        'capability_type' => 'page',
        'has_archive' => true,
        'hierarchical' => true,
        'menu_position' => null,
        'menu_icon' => get_template_directory_uri() . '/images/icons/people.png',
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt','page-attributes'),
    );

    register_post_type('people', $people_args);
}

I Miei Template Personalizzati: people.php people-single.php

0
Tutte le risposte alla domanda 1
6
22

Dovrebbe funzionare:

'rewrite' => array( 'slug' => 'about-us/our-people'),

combinato con:

'has_archive' => false,

Assicurati di visitare la pagina delle impostazioni dei Permalink nell'amministrazione dopo aver apportato le modifiche per ripulire le regole di riscrittura.

15 gen 2013 23:52:37
Commenti

cosa farà questo?

Nick Nick
16 gen 2013 00:01:24

Wow, non capisco perché stavo avendo così tante difficoltà con questo. Grazie.

Nick Nick
16 gen 2013 00:03:34

Sarebbe bello vedere qualche spiegazione sul perché questo dovrebbe funzionare.

montrealist montrealist
22 gen 2013 20:58:03

Per chi sta cercando semplicemente di assegnare una pagina genitore al proprio CPT, senza disabilitare gli archivi, vale la pena notare che 'has_archive' può anche accettare una stringa come slug per l'archivio.

jwinn jwinn
9 set 2016 06:41:18

È anche importante notare che questo non inserirà 'about-us' nei Breadcrumb generati da plugin come Yoast.

Mir Mir
9 nov 2018 00:23:11

@Mir conosci qualche soluzione alternativa per questo problema con Yoast?

arvil arvil
12 dic 2018 03:00:56
Mostra i restanti 1 commenti