用于识别是否使用自定义 header.php 的 Wordpress 条件标记
Wordpress conditional tag to identify if custom header.php is used
我正在寻找一种解决方案,以在自定义 post-type
上使用 add_rewrite_endpoint
时使用条件语句识别 只有一页(下面列表中的 4 个) ].
例如,假设每个 post-type
广告系列 ...
我有四种类型的页面
- 活动/post-title/概览
- 活动/post-title/预览
- 广告系列/post-title/分析
- 广告系列/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_singular
、is_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
}
我正在寻找一种解决方案,以在自定义 post-type
上使用 add_rewrite_endpoint
时使用条件语句识别 只有一页(下面列表中的 4 个) ].
例如,假设每个 post-type
广告系列 ...
- 活动/post-title/概览
- 活动/post-title/预览
- 广告系列/post-title/分析
- 广告系列/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-templatesif( 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
等将识别条件并将条件应用于每个 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
}