Answers:
如果“ 博客页面 ”是指在“ 阅读设置”中将静态页面设置为帖子页面,则可以通过执行以下操作进行检查:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
当使用
is_home()
和时is_front_page()
,必须按正确的顺序使用它们, 以避免错误并测试每个用户配置。
(来源:条件标签-博客页面)
或者简单地:
if ( !is_front_page() && is_home() ) {
// blog page
}
或更简单地说(我想):
if ( is_home() ) {
// blog page
}
您可以在主题functions.php文件中使用以下内容:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
然后将其放入您要检查的文件中:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
您可以在functions.php文件中使用Hooks来挂钩上述内容,以使它显示在每个页面上。
如果“博客页面”是指在阅读中将静态页面设置为帖子页面:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS。此解决方案也适用于template_redirect动作
global $wp_query
),还因为它没有完全回答问题。这是一个函数,但是OP在他的头文件中询问如何解决这个问题-因此可能需要更多关于放置位置的解释。再次欢迎您,很高兴有您在这里!
有一个棘手的方法。
假设您的博客页面标签为blog
,则可以使用此代码。
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
我猜很简单,我处在相同的情况下,我使用了以下技术来使用页塞。
if( is_page('blog') ) {
echo "This is your blog page";
}
但是请确保您没有选择主页来显示最近的博客文章,并且已为博客或新闻等博客设置了特定页面,只需使用该页面标签,就可以了。
您可以使用..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
检查它是否是单个博客文章。要么...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
检查是否是博客主页
if ( !is_front_page() && is_home() )
至少在我看来,一个用例是,如果您要为默认主页和博客页面分发具有不同布局样式的主题。