我想有这样的链接,site.com/my-custom-type-slug/single-custom-post-name/stats/, 哪里/stats 应包含/my-custom-type-slug 页面内容,以及当我将内容添加到/stats 页面,应添加在父级内容之后。
这个/stats 例如,对于在我的CPT中创建的每个页面,页面都应该可用/my-custom-type-slug2, /my-custom-type-slug3, 等等/stats.
我认为一个解决方案是创建一个名为stats 并分配一个自定义模板,但问题是如何为我正在创建的每个新帖子创建附加内容?
如果我不需要激活评论,这将很容易,因为我是这样做的:
使用在我的帖子中添加自定义所见即所得字段ACF 插件,然后创建端点:
function wpa121567_rewrite_endpoints(){
add_rewrite_endpoint( \'stats\', EP_PERMALINK );
}
add_action( \'init\', \'wpa121567_rewrite_endpoints\' );
在此之后,我的URL将如下所示:
site.com/your-custom-type-slug/single-custom-post-name/stats/
然后在我的single-{cpt}.php
模板我可以检查请求是否用于stats, 并包括或输出所需数据:
if( array_key_exists( \'stats\', $wp_query->query_vars ) ){
// the request is for the comments page
}
else {
// the request is for the main post
}
此解决方案不适用于我,因为我无法在上激活评论
/stats 因为我正在使用端点来创建它。
总之,我需要的是为父页面和“/stats”页面提供两组独立的注释。对如何实现这一目标有何建议?
最合适的回答,由SO网友:ifdion 整理而成
我建议使用分层自定义帖子类型和条件,以便在single-{cpt}.php
. 通过使用分层自定义帖子类型,您可以创建sub-cpt , 就像sub page 作为stats 它是母帖的一部分。
这个sub-cpt 然后可用于存储附加数据(例如,在post\\u内容或custom\\u字段中)以及特定于stats 部分职位。
请注意,您将需要使用pre_get_posts
钩
在single-{cpt}.php
应该是这样的
<?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; ?>