检查当前页面是否为博客页面

时间:2013-07-19 作者:KarSho

我是WordPress的新手。我正在寻找一种方法来检查当前页面是否是头文件代码中的博客页面。

我查过了,但找不到办法。请帮帮我。

11 个回复
SO网友:Giraldi

如果由\'blog page\' 您的意思是在Reading Settings, 然后,您可以通过执行以下操作进行检查:

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(), 你必须在the right order 避免错误并测试每个用户配置。

(来源:Conditional Tags - The Blog Page)

或者简单地说:

if ( !is_front_page() && is_home() ) {
  // blog page
}
或者更简单地说(我想):

if ( is_home() ) {
  // blog page
}

SO网友:Vagish

您可以在主题函数中使用以下内容。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\'; } ?>
您可以在函数中使用挂钩。php文件挂钩上述内容,使其出现在每个页面上。

SO网友:Sergey Repin

如果“博客页面”是指在阅读中设置为帖子页面的静态页面:

global $wp_query;

if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
    //static blog page
}
PS.此解决方案也适用于template_redirect 行动

SO网友:J.Wang

获取blog index page, 我发现了

if ( !is_front_page() && is_home() ) {
  // blog page
}
不适用于我,我必须使用get\\u选项(\'page\\u for\\u posts\')函数来标识博客页面post\\u id,我的答案是

if ( !is_front_page() && is_home() ){  

    if ( empty ( $post_id) ) {
        global $post;
        $post_id =  get_option( \'page_for_posts\' );
    }

    //blog page
}

SO网友:Xav

您可以使用。。

<?php if ( is_single() ) { ?>

Do stuff here

<?php } ?>
检查是否是一篇博客文章。或

<?php if ( is_home() ) { ?>

Do stuff here

<?php } ?>
检查是否是博客主页

SO网友:John Smith

I use this way

// Get body classes as array
$body_classes = get_body_class();
// Check if "blog" class exists in the array
if(in_array("blog", $body_classes)) {
   // Do stuff
}
SO网友:Rajilesh Panoli

有一个棘手的方法。

http://example.com/blog

假设您的博客页面slug是blog, 您可以使用此代码。

global $wp_query;
if($wp_query->query[\'pagename\']==\'blog\'){
// this is blog page
}

SO网友:DevWL

主页

if(is_home() && is_front_page() || is_front_page()): // static or default hompage
 ...
endif;
博客

if(is_home() && !is_front_page()): // blog
 ...
endif;

SO网友:Rahman Zeb

我想这很简单,我也遇到过同样的情况,我使用了以下技术,即使用页面slug。

if( is_page(\'blog\') ) {
echo "This is your blog page"; 
}
但请确保您没有选择主页来显示最近的博客帖子,并且您已经为博客或新闻等博客设置了特定页面,只需使用该页面标记,您就可以了。

SO网友:Jodyshop

在我看来,最好的解决方案不是检查页面是否在主页或是否存档,或者&;您可以简单地检查您使用的模板。

例如:我在我的博客帖子页面中使用此模板:

template-blog.php
因此,我可以将其与任何其他页面区分开来,如下所示:

if( is_page_template(\'template-blog.php\') ) {}
希望这有帮助。

SO网友:Aadol Rrashid

这对我有用。。。即使我进入个人帖子,博客菜单也会被激活。有了这个,你就可以一直瞄准博客页面。

[注意:如果您的博客是“帖子页面”,则此选项有效]enter image description here

   <li <?php if(get_post_type() == \'post\' )
     {echo \'class="current-menu-item"\';} ?> >
       <a href="<?php echo site_url(\'/blog\');?>">
         Blog
       </a>
    </li>

结束

相关推荐

WordPress PHP插件-设置页面错误

为Wordpress编写PHP插件。这是一个外部PHP脚本。但现在我遇到了一个问题。当我单击页面上的提交时,它会重定向,表示没有访问该页面的权限。编辑:完全不同的查询。在下面建议的一些更改之后,我出现了权限错误。(查看编辑以查看修订)。这是我的代码: <?php /* Plugin Name: ProfileDT-JobBoard Plugin URI: http://profile