Un tipo di post personalizzato può avere una Pagina principale?


16

Ho visto molti post nel Webiverso sull'assegnazione di una pagina come genitore di un tipo di post personalizzato. Dopo quattro ore non riesco a trovare una soluzione e ho bisogno di aiuto. Ho creato una pagina "Informazioni" che è il genitore di una pagina "Le nostre persone". Ho anche creato un tipo di post personalizzato chiamato "Persone". E ho creato un modello di pagina personalizzato per la pagina "Le nostre persone". La struttura Permalink sembra a posto finché non si arriva alla singola pagina "persone". Ad esempio: John Smith's Page, il permalink non è corretto.

Tipo di post personalizzato:

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

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

La nostra pagina delle persone Strucure: / chi siamo / le nostre persone

"About-us" è una pagina, "our-people" è una pagina e anche la riscrittura delle lumache per il tipo di post personalizzato "persone". Ho provato a cambiare le impostazioni gerarchiche e ho provato ad aggiungere "about-us / our-people" direttamente nella riscrittura senza successo.

functions.php:

function codex_custom_init() {
    // Our People
    $people_label = array(
        'name' => 'People',
        'singular_name' => 'People',
        'add_new' => 'Add People',
        'add_new_item' => 'Add New People',
        'edit_item' => 'Edit People',
        'new_item' => 'New People',
        'all_items' => 'All People',
        'view_item' => 'View People',
        'search_items' => 'Search People',
        'not_found' => 'No People found',
        'not_found_in_trash' => 'No People found in Trash',
        'parent_item_colon' => '',
        'menu_name' => 'People',
    );
    $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 modelli personalizzati: people.php people-single.php

Risposte:


19

Questo dovrebbe funzionare:

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

combinata con:

'has_archive' => false,

Assicurati di visitare la pagina delle impostazioni dei permalink nel tuo amministratore dopo aver apportato le modifiche per svuotare le regole di riscrittura.


2
che cosa farà?
Nick,

7
Sarebbe bello vedere alcune spiegazioni del perché questo avrebbe funzionato.
montrealista il

3
Per chiunque stia solo cercando di dare al proprio CPT una pagina padre e non disabilitare gli archivi, vale la pena notare che 'has_archive' può anche passare una stringa per la lumaca dell'archivio.
jwinn,

3
Vale anche la pena notare che questo non inietterà "chi siamo" nel Breadcrumb da plugin come Yoast.
Mir,

2
Hai qualche soluzione alternativa nota per quel problema di Yoast?
incudine
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.