¿Cómo configurar el enlace permanente para buscar todas las publicaciones personalizadas de los niños con la publicación principal en wordpress?

4 minutos de lectura

avatar de usuario
hu7sy

Creo una relación padre-hijo para tipos de publicaciones personalizadas.

Genérico: www.example.com/parent/parent_post

Ejemplo: www.example.com/projects/project-one

En la URL anterior, el padre es un tipo de publicación personalizada y la publicación principal es su publicación única. Puedo mostrar a los padres todas las publicaciones y publicaciones individuales respectivamente como archive-parent.php y single-parent.php .

Como mencioné anteriormente, creo una relación padre-hijo y con una publicación secundaria que almacena ‘post_parent’ como identificación principal.

Genérico: www.example.com/child/parent_post/child_post

Ejemplo: www.example.com/project_article/project-one/first-article

Y para una publicación secundaria específica, la URL será la anterior.

El siguiente código es para obtener una publicación secundaria específica. Y funciona bien.

function my_add_rewrite_rules() {
    add_rewrite_tag('%child%', '([^/]+)', 'child=');
    add_permastruct('child', 'child/%parent%/%child%', false);
    add_rewrite_rule('^child/([^/]+)/([^/]+)/?','index.php?child=$matches[2]','top');
}
add_action( 'init', 'my_add_rewrite_rules' );

function my_permalinks($permalink, $post, $leavename) {
    $post_id = $post->ID;
    if($post->post_type != 'child' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
        return $permalink;
    $parent = $post->post_parent;
    $parent_post = get_post( $parent );
    $permalink = str_replace('%parent%', $parent_post->post_name, $permalink);
    return $permalink;
}
add_filter('post_type_link', 'my_permalinks', 10, 3);

Genérico: www.example.com/child/parent_post

Ejemplo: www.example.com/project_article/project-one

Ahora quiero todas las publicaciones secundarias con la publicación principal, como en la URL anterior.

Soy nuevo en word-press Por favor guíe.

  • Los enlaces de su servidor local no funcionarán aquí.

    – Nirmohi

    3 de septiembre de 2018 a las 7:22

  • No puede publicar enlaces de localhost aquí.

    – duende

    3 de septiembre de 2018 a las 7:22

  • Un poco confundido: ¿tiene un solo tipo de publicación personalizada llamado child con jerarquía padre-hijo y desea enumerar todas las publicaciones secundarias cuando se accede a una página principal?

    – Subcontratar WordPress

    7 sep 2018 a las 10:07


  • sí, casi tienes mi pregunta @OutsourceWordPress, quiero todas las publicaciones secundarias relacionadas con padres solteros y estoy almacenando parent_post (id) en la publicación secundaria

    – hu7sy

    7 sep 2018 a las 10:28

avatar de usuario
Subcontratar WordPress

Asumiendo parent como tipo de publicación personalizada principal, child como tipo de publicación personalizada infantil y espero que necesite una URL de publicación infantil como http://www.example.com/parent/parent-post/child/child-post en vez de http://www.example.com/child/parent-post/child-post.

Cambia tu my_add_rewrite_rules() función a la siguiente.

function my_add_rewrite_rules() {
    add_rewrite_tag('%child%', '([^/]+)', 'child=');
    add_permastruct('child', '/parent/%parent%/child/%child%', false);
    add_rewrite_rule('^parent/([^/]+)/child/([^/]+)/?','index.php?child=$matches[2]','top');
}
add_action( 'init', 'my_add_rewrite_rules' );

Después de actualizar no olvides al ras enlaces permanentes a través de ‘Configuración > Enlaces permanentes’.

  • Ya había creado {single-custom-post-type-name}.php, si ve esta URL: Ejemplo: www.example.com/project_article/project-one/first-article y código: add_rewrite_rule(‘^child/ ([^/]+)/([^/]+)/?’,’index.php?child=$coincidencias[2]’,’parte superior’); por favor lea mi pregunta nuevamente gracias de antemano y si mira esta url 1fix.io/blog/2016/02/05/padre-de-otro-cpt puede obtener una publicación de un solo hijo relacionada con un padre soltero y no puede obtener una publicación de todos los hijos relacionada con un padre soltero.

    – hu7sy

    7 sep 2018 a las 11:25


  • Oh, ¿está utilizando 2 tipos de publicaciones personalizadas y vincula las publicaciones del segundo tipo de publicación como elemento secundario del primer tipo de publicación?

    – Subcontratar WordPress

    7 sep 2018 a las 11:58

  • ¿Dónde dice que no se enumeran todas las publicaciones secundarias, en el cuadro meta ‘principal’?

    – Subcontratar WordPress

    7 sep 2018 a las 12:21

  • busque en esta URL: Ejemplo: www.example.com/project_article/project-one/first-article. project-one es una publicación única de tipo de publicación personalizada principal y el primer artículo es secundario de project-one de publicación única de tipo de publicación personalizada. /project-one luego busca todas las publicaciones secundarias relacionadas con la publicación personalizada de project-one

    – hu7sy

    7 sep 2018 a las 12:37

  • si agrego single-parent.php, devolverá todas las publicaciones relacionadas con el tipo de publicación principal, no es secundaria.

    – hu7sy

    7 sep 2018 a las 12:40

¿Ha sido útil esta solución?