Crie página filha dentro do tipo de postagem personalizada

4

Eu quero poder ter um link como este, site.com/my-custom-type-slug/single-custom-post-name/stats / , onde / As estatísticas devem conter o conteúdo da página / my-custom-type-slug e, quando adicionar conteúdo à página / stats , ela deve ser adicionada depois da página do pai. conteúdo.

A página / stats deve estar disponível para todas as páginas criadas em meu CPT, por exemplo, / my-custom-type-slug2 , / my-custom -type-slug3 , e assim por diante, para ter o / stats .

Estou pensando que uma solução pode ser criar uma página chamada stats e atribuir um modelo personalizado, mas o problema é como posso criar o conteúdo adicional para cada nova postagem que sou criando?

Isso seria fácil se eu não precisasse que os comentários fossem ativados porque eu estava fazendo assim:

Adicione um campo WYSIWYG personalizado em minhas postagens com o plug-in ACF e crie um endpoint :

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

Depois disso, minha URL ficaria assim:
site.com/your-custom-type-slug/single-custom-post-name/stats/

Em seguida, no meu modelo single-{cpt}.php , posso verificar se a solicitação é para stats e incluir ou enviar os dados desejados:

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 solução não está funcionando para mim porque não posso ativar comentários em / stats porque estou usando um endpoint para criá-lo.

Como conclusão, o que preciso é de dois conjuntos separados de comentários para a página pai e "/ stats". Alguma sugestão sobre como conseguir isso?

    
por agis 16.01.2014 / 18:08

1 resposta

1

Eu sugiro um tipo de postagem personalizada hierárquica e uma condicional para criar um loop adicional no seu single-{cpt}.php . Usando o tipo de postagem personalizada hierárquica, você pode criar um subcpt , como uma subpágina como a parte stats de sua postagem pai.

O sub-cpt pode ser usado para armazenar dados adicionais (por exemplo, em post_content ou custom_fields) e também o comentário específico para a parte stats da postagem. / p>

Note que você precisará incluir apenas o cpt pai (excluindo o subcpt) no loop principal usando o gancho pre_get_posts .

No single-{cpt}.php , deve ser algo assim

<?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; ?>
    
por ifdion 19.01.2015 / 09:17