自定义帖子类型“if( array_key_exists”其他查询



>我已经配置了一个custom_post_type来显示多个页面

function discovr_campaign_endpoints() {
add_rewrite_endpoint( 'overview', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-details', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-audience', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-page', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-ads', EP_PERMALINK );
add_rewrite_endpoint( 'edit-campaign', EP_PERMALINK );
add_rewrite_endpoint( 'analytics', EP_PERMALINK );
add_rewrite_endpoint( 'preview-campaign', EP_PERMALINK );
}
add_action( 'init', 'discovr_campaign_endpoints' );

并在single-post-type.php

<?php 
if( array_key_exists( 'overview', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-overview.php");
} 
if( array_key_exists( 'new-campaign-details', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-details.php");
}
if( array_key_exists( 'new-campaign-audience', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-audience.php");
} 
if( array_key_exists( 'new-campaign-page', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-page.php");
} 
if( array_key_exists( 'new-campaign-ads', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-ads.php");
} 
if( array_key_exists( 'edit-campaign', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-edit.php");
} 
if( array_key_exists( 'analytics', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-analytics.php");
}
if( array_key_exists( 'preview-campaign', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-preview.php");
}?>

根据每个endpoint显示每个页面的相应内容

但是,我仍然想显示

<?php the_content();?>

如果未显示这些页面,请在"single-post-type.php"页面中显示。

我试过使用

if( array_key_exists( 'new-campaign-details', $wp_query->query_vars ) )
{
    include("campaign-templates/single-campaign-new-details.php");
}else{
     echo the_content();
}

但是,在每个端点上,这将多次显示the_content,我相信我需要一种方法来围绕单个elseif( array_key_exists添加if(*first* array_key_exists)语句,以查询这些端点中是否存在任何else} echo the_content();

就像下面的例子一样(这似乎有效,如果我替换接受echo 'Hello World';但不是the_content();

<?php 
if( array_key_exists( 'overview', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-overview.php");
} 
elseif( array_key_exists( 'new-campaign-details', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-details.php");
}
elseif( array_key_exists( 'new-campaign-audience', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-audience.php");
} 
elseif( array_key_exists( 'new-campaign-page', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-page.php");
} 
elseif( array_key_exists( 'new-campaign-ads', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-ads.php");
} 
elseif( array_key_exists( 'edit-campaign', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-edit.php");
} 
elseif( array_key_exists( 'analytics', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-analytics.php");
}
elseif( array_key_exists( 'preview-campaign', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-preview.php");
}
else{
    echo the_content();
}
?>

谢谢你的帮助。

不用担心,我的解决方案是正确的,只是遗漏了一些关键点。

如果其他人遇到此问题,请对此表示怀疑。通宵达旦的愚蠢错误。

它是

<?php 
if( array_key_exists( 'overview', $wp_query->query_vars ) ){
include("campaign-templates/single-campaign-overview.php");
} 
elseif( array_key_exists( 'new-campaign-details', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-details.php");
}
elseif( array_key_exists( 'new-campaign-audience', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-audience.php");
} 
elseif( array_key_exists( 'new-campaign-page', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-page.php");
} 
elseif( array_key_exists( 'new-campaign-ads', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-new-ads.php");
} 
elseif( array_key_exists( 'edit-campaign', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-edit.php");
} 
elseif( array_key_exists( 'analytics', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-analytics.php");
}
elseif( array_key_exists( 'preview-campaign', $wp_query->query_vars ) ){
    include("campaign-templates/single-campaign-preview.php");
}
else{
    get_header('new');
    if (have_posts()) : while (have_posts()) : the_post();
    the_content();
    endwhile;
    endif; 
    get_footer('new');
}
?>

相关内容

最新更新