Wordpress条件标记,用于标识是否使用custom header.php

Wordpress条件标记,用于标识是否使用custom header.php,php,wordpress,conditional-statements,custom-post-type,Php,Wordpress,Conditional Statements,Custom Post Type,我正在寻找一种解决方案,在自定义post类型上使用add_rewrite_端点时,使用条件语句仅识别下面列表中的第4页 例如,假设每个帖子类型有四种类型的页面 活动/帖子标题/概述 活动/文章标题/预览 活动/帖子标题/分析 活动/帖子标题-作为single-campaigns.php 在函数中使用此代码 add_rewrite_endpoint( 'overview', EP_PERMALINK ); add_rewrite_endpoint( 'analytics', EP_PERMALIN

我正在寻找一种解决方案,在自定义post类型上使用add_rewrite_端点时,使用条件语句仅识别下面列表中的第4页

例如,假设每个帖子类型有四种类型的页面

活动/帖子标题/概述 活动/文章标题/预览 活动/帖子标题/分析 活动/帖子标题-作为single-campaigns.php 在函数中使用此代码

add_rewrite_endpoint( 'overview', EP_PERMALINK );
add_rewrite_endpoint( 'analytics', EP_PERMALINK );
add_rewrite_endpoint( 'preview-campaign', EP_PERMALINK );
然后使用

if( array_key_exists( 'overview', $wp_query->query_vars ) ){
include("campaign-templates/single-campaign-overview.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('landing');
        if (have_posts()) : while (have_posts()) : the_post();
        if ( $post->post_content=="" ) {
           the_content(); 
        } else {
           the_content(); 
        };
    endwhile;
    endif; 
    get_footer('new');
}
显然,使用is_singular、is_single等将识别并将该条件应用于每篇文章的所有页面类型

我最初的想法是在某些东西上添加条件,以确定get_headerlanding的使用,这可能吗

编辑- 提供更多的上下文。我试图将if的条件仅应用于上面页面列表中所示的单个4,而不应用于其他4

if ( **single-campaigns.php**() ) {
    //Function
}else{
    wp_register_script( 'wp_auth_check', '/wp-includes/js/wp-auth-check.js' , array('heartbeat'), false, 1);
...
}

你拥有你所需要的一切。您为每种类型创建了端点、创建条件并检查true。为模板或标题创建变量。和过去调用get_header或get_template_part; 也许这样对你有帮助

if ( array_key_exists( 'overview', $wp_query->query_vars ) ) {
    $template = 'overview';
    $header   = 'test';
} elseif ( array_key_exists( 'analytics', $wp_query->query_vars ) ) {
    $template = 'analytics';
    $header   = 'tes1';
} elseif ( array_key_exists( 'preview-campaign', $wp_query->query_vars ) ) {
    $template = 'preview-campaign';
    $header   = 'test2';
} else {
    $template = 'default';
    $header   = '';
}

或创建要在条件中使用的函数:

function is_single_with_endpoint( $endpoint ) {
    global $wp_query;

    if ( ! isset( $endpoint ) && ! empty( $endpoint ) ) {
        return false;
    }
    if ( array_key_exists( $endpoint, $wp_query->query_vars ) ) {
        return true;
    } else {
        return false;
    }
}

if ( is_single_with_endpoint( 'overview' ) ) {
    // get_header or something
}

如果$post->post_内容=={回显_内容;}否则{回显_内容;};:D和_内容;将自动打印内容。您不需要使用echo.Thank@MaximSarandi。我注意到,您已经发送了与上述内容相同的内容,对我的问题有任何想法,即在单独的函数中识别页面吗?是@Maxisrandi。早就知道了——迟来了,写错了。不是关于我的问题,但谢谢你提醒我。我喜欢你回答的第二部分,我觉得这很有趣。我面临的唯一问题是,我希望包含在if条件中的页面没有写入的端点。这是默认的帖子页面。在条件中使用else我知道,但不幸的是,它将排除不属于帖子类型的其他页面。我在《基本》中试图实现的是——将wp_auth_check的前端管理脚本添加到每个页面,但单个活动页面除外,该页面是唯一可公开查看的页面。希望这是有意义的。你的方法和答案对于识别一个端点和另一个端点非常有效,但不能超出这个范围。我有一个条件。如果您的页面没有任何端点,函数将返回false。
get_template_part( '/parts/', $template );
function is_single_with_endpoint( $endpoint ) {
    global $wp_query;

    if ( ! isset( $endpoint ) && ! empty( $endpoint ) ) {
        return false;
    }
    if ( array_key_exists( $endpoint, $wp_query->query_vars ) ) {
        return true;
    } else {
        return false;
    }
}

if ( is_single_with_endpoint( 'overview' ) ) {
    // get_header or something
}