用于识别是否使用自定义 header.php 的 Wordpress 条件标记

Wordpress conditional tag to identify if custom header.php is used

我正在寻找一种解决方案,以在自定义 post-type 上使用 add_rewrite_endpoint 时使用条件语句识别 只有一页(下面列表中的 4 个) ].

例如,假设每个 post-type 广告系列 ...

我有四种类型的页面
  1. 活动/post-title/概览
  2. 活动/post-title/预览
  3. 广告系列/post-title/分析
  4. 广告系列/post-title - 作为 single-campaigns.php

在函数中使用此代码

add_rewrite_endpoint( 'overview', EP_PERMALINK );
add_rewrite_endpoint( 'analytics', EP_PERMALINK );
add_rewrite_endpoint( 'preview-campaign', EP_PERMALINK );

然后在 single-campaigns.php 中使用

调用单独的 page-templates
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_singularis_single 等将识别条件并将条件应用于每个 post 的所有页面类型。

我最初的想法是在某些东西上添加条件来识别get_header(landing)的用途,这可能吗?

编辑 - 提供更多背景信息。我试图将 if 的条件仅应用于单个页面(上面列表中显示的#4),而不是其他页面。

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

你拥有你所需要的一切。您创建了端点、创建条件并为每种类型检查是否为真。为模板或 header 创建变量。过去调用 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   = '';
}

...

get_header( $header );

...

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
}