Crear una página secundaria dentro del tipo de publicación personalizada

4

Quiero poder tener un enlace como este, site.com/my-custom-type-slug/single-custom-post-name/stats/ , donde / stats debe contener el contenido de la página / my-custom-type-slug y cuando agrego contenido a la página / stats , debe agregarse después de los padres. contenido.

La página / stats debería estar disponible para cada página creada dentro de mi CPT, por ejemplo / my-custom-type-slug2 , / my-custom -type-slug3 , y así sucesivamente, para tener / stats .

Estoy pensando que una solución puede ser crear una página llamada stats y asignar una plantilla personalizada, pero el problema es cómo puedo crear el contenido adicional para cada nueva publicación que publique. creando?

Esto sería fácil si no necesitara que se activen los comentarios porque lo estaba haciendo así:

Agregue un campo WYSIWYG personalizado dentro de mis publicaciones con el ACF complemento, luego cree un punto final :

function wpa121567_rewrite_endpoints(){
    add_rewrite_endpoint( 'stats', EP_PERMALINK );
}
add_action( 'init', 'wpa121567_rewrite_endpoints' );

Después de esto, mi URL se vería así:
site.com/your-custom-type-slug/single-custom-post-name/stats/

Luego, en mi plantilla single-{cpt}.php puedo verificar si la solicitud es para estadísticas e incluir o generar los datos deseados:

if( array_key_exists( 'stats', $wp_query->query_vars ) ){
    // the request is for the comments page
} 
else {
    // the request is for the main post
}

Esta solución no me funciona porque no puedo activar los comentarios en / stats porque estoy usando un punto final para crearla.

Como conclusión, lo que necesito son dos conjuntos separados de comentarios para los padres y la página "/ stats". ¿Alguna sugerencia sobre cómo lograr esto?

    
pregunta agis 16.01.2014 - 18:08

1 respuesta

1

Sugiero un tipo de mensaje personalizado jerárquico y un condicional para crear un bucle adicional en su single-{cpt}.php . Al utilizar el tipo de publicación personalizada jerárquica, puede crear un sub-cpt , como una subpágina como la parte stats de su publicación principal.

El sub-cpt luego se puede usar para almacenar datos adicionales (por ejemplo, en post_content o custom_fields) y también el comentario específico de la parte stats de la publicación.

Tenga en cuenta que deberá incluir solo el cpt principal (excluyendo el sub cpt) en el bucle principal utilizando el gancho pre_get_posts .

En el single-{cpt}.php debería ser algo como esto

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <?php if( array_key_exists( 'stats', $wp_query->query_vars ): ?>

        <!-- output the data for the stats part -->
        <?php
            // query sub cpt data
            $args = array(
                'post_parent' => $post->ID,
                'post_type'   => 'your-cpt', 
                'posts_per_page' => 1,
                'post_status' => 'any'
            );

            $sub_cpt = get_children( $args);

            // query sub cpt comment
            $args = array(
                'post_id' => $sub_cpt->ID,
            );

            $child_post_comment = get_comments( $comment_args );
        ?>

    <?php else: ?>

        <!-- output the data as you intended for the non stats part -->
        <?php the_title(); ?>
        <?php the_content(); ?>
        <?php
            // query sub cpt comment
            $args = array(
                'post_id' => $post->ID,
            );
        ?>
        <?php get_comments( $args ); ?>

    <?php endif; ?> 
<?php endwhile; ?>
<?php endif; ?>
    
respondido por el ifdion 19.01.2015 - 09:17

Lea otras preguntas en las etiquetas