Poate un tip de postare personalizat să aibă o Pagină Părinte?

15 ian. 2013, 23:29:48
Vizualizări: 42.1K
Voturi: 19

Am văzut multe postări pe web despre atribuirea unei pagini ca părinte pentru un tip de postare personalizat. După patru ore nu am găsit o soluție și am nevoie de ajutor. Am creat o pagină "About" care este părintele unei pagini "Our People". De asemenea, am creat un tip de postare personalizat numit "People". Și am creat un șablon de pagină personalizat pentru pagina "Our People". Structura Permalink arată bine până ajungi la pagina individuală "people". De exemplu: Pagina lui John Smith, permalink-ul nu este corect.

Tip de postare personalizat:

Structura Permalink dorită: /about-us/our-people/john-smith

Structura Permalink actuală: /our-people/john-smith

Structura paginii Our People: /about-us/our-people

"about-us" este o pagină, "our-people" este o pagină și de asemenea slug-ul de rescriere pentru tipul de postare personalizat, "people". Am încercat să schimb setările ierarhice și am încercat să adaug "about-us/our-people" direct în rescrierea URL-ului fără succes.

Functions.php:

function codex_custom_init() {
    // Oamenii noștri
    $people_label = array(
        'name' => 'Oameni',
        'singular_name' => 'Oameni',
        'add_new' => 'Adaugă Oameni',
        'add_new_item' => 'Adaugă Oameni Noi',
        'edit_item' => 'Editează Oameni',
        'new_item' => 'Oameni Noi',
        'all_items' => 'Toți Oamenii',
        'view_item' => 'Vezi Oameni',
        'search_items' => 'Caută Oameni',
        'not_found' => 'Nu s-au găsit Oameni',
        'not_found_in_trash' => 'Nu s-au găsit Oameni în Coșul de gunoi',
        'parent_item_colon' => '',
        'menu_name' => 'Oameni',
    );
    $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);
}

Șabloanele mele personalizate: people.php people-single.php

0
Toate răspunsurile la întrebare 1
6
22

Acest lucru ar trebui să funcționeze:

'rewrite' => array( 'slug' => 'despre-noi/echipa-noastra'),

combinat cu:

'has_archive' => false,

Asigură-te că vizitezi pagina de setări Permalinks în panoul de administrare după ce ai făcut modificările, pentru a reînnoi regulile de rescriere.

15 ian. 2013 23:52:37
Comentarii

ce va face asta?

Nick Nick
16 ian. 2013 00:01:24

Uau, nu înțeleg de ce m-am chinuit atât de mult la asta. Mulțumesc.

Nick Nick
16 ian. 2013 00:03:34

Ar fi grozav să văd niște explicații despre de ce ar funcționa asta.

montrealist montrealist
22 ian. 2013 20:58:03

Pentru cei care înceracă să ofere paginii lor CPT o pagină părinte, fără a dezactiva arhivele, este important de menționat că 'has_archive' poate primi și un șir de caractere pentru slug-ul arhivei.

jwinn jwinn
9 sept. 2016 06:41:18

De asemenea, este important de menționat că acest lucru nu va insera 'about-us' în Breadcrumbs din plugin-uri precum Yoast.

Mir Mir
9 nov. 2018 00:23:11

@Mir există vreo soluție cunoscută pentru această problemă cu Yoast?

arvil arvil
12 dec. 2018 03:00:56
Arată celelalte 1 comentarii