¿Puede un tipo de entrada personalizada tener una Página Padre?

15 ene 2013, 23:29:48
Vistas: 42.1K
Votos: 19

He visto muchas publicaciones en la web sobre cómo asignar una página como padre de un tipo de entrada personalizada. Después de cuatro horas no puedo encontrar una solución y necesito ayuda. He creado una página "About" que es la padre de una página "Our People". También he creado un tipo de entrada personalizada llamado "People". Y he creado una plantilla de página personalizada para la página "Our People". La estructura de enlaces permanentes se ve bien hasta que llegas a la página individual de "people". Por ejemplo: la página de John Smith, el enlace permanente no es correcto.

Tipo de entrada personalizada:

Estructura de Enlaces Deseada: /about-us/our-people/john-smith

Estructura de Enlaces Actual: /our-people/john-smith

Estructura de la Página Our People: /about-us/our-people

El "about-us" es una página, "our-people" es una página y también la reescritura del slug para el tipo de entrada personalizada "people". He intentado cambiar la configuración jerárquica y he intentado agregar "about-us/our-people" directamente en la reescritura sin éxito.

Functions.php:

function codex_custom_init() {
    // Nuestra Gente
    $people_label = array(
        'name' => 'Personas',
        'singular_name' => 'Persona',
        'add_new' => 'Agregar Persona',
        'add_new_item' => 'Agregar Nueva Persona',
        'edit_item' => 'Editar Persona',
        'new_item' => 'Nueva Persona',
        'all_items' => 'Todas las Personas',
        'view_item' => 'Ver Persona',
        'search_items' => 'Buscar Personas',
        'not_found' => 'No se encontraron Personas',
        'not_found_in_trash' => 'No se encontraron Personas en la Papelera',
        'parent_item_colon' => '',
        'menu_name' => 'Personas',
    );
    $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);
}

Mis Plantillas Personalizadas: people.php people-single.php

0
Todas las respuestas a la pregunta 1
6
22

Esto debería funcionar:

'rewrite' => array( 'slug' => 'acerca-de/nuestro-equipo'),

combinado con:

'has_archive' => false,

Asegúrate de visitar la página de configuración de Enlaces permanentes en tu administrador después de hacer los cambios para actualizar las reglas de reescritura.

15 ene 2013 23:52:37
Comentarios

¿qué hará eso?

Nick Nick
16 ene 2013 00:01:24

Vaya, no entiendo por qué me costó tanto. Gracias.

Nick Nick
16 ene 2013 00:03:34

Sería genial ver algunas explicaciones de por qué esto funcionaría.

montrealist montrealist
22 ene 2013 20:58:03

Para cualquiera que solo intente darle una página padre a su CPT (Custom Post Type), y no deshabilitar los archivos, vale la pena mencionar que 'has_archive' también puede recibir una cadena para el slug del archivo.

jwinn jwinn
9 sept 2016 06:41:18

También es importante señalar que esto no inyectará 'about-us' en las migas de pan (Breadcrumbs) de plugins como Yoast.

Mir Mir
9 nov 2018 00:23:11

@Mir ¿alguna solución conocida para ese problema con Yoast?

arvil arvil
12 dic 2018 03:00:56
Mostrar los 1 comentarios restantes