Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm new to Wordpress. I need to check in header file if current page is the Blog Page?

I checked but I can't find the way. Help me, Pls.

share|improve this question

5 Answers 5

up vote 1 down vote accepted

There is a list of conditional tags here - http://codex.wordpress.org/Conditional_Tags

share|improve this answer

You can use

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

Do stuff here

<?php } ?>
share|improve this answer
    
Doesn't work if you've changed the blog page –  cdmckay Oct 9 at 15:09

You can use the following in your themes functions.php file:

function is_blog () {
global  $post;
$posttype = get_post_type($post );
return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;
}

And then put this in the file you are checking:

<?php if (is_blog()) { echo 'You are on a blog page'; } ?>

You can use Hooks in your functions.php file to hook the above, to make that appear on every page.

share|improve this answer

If by 'blog page' you meant a static page set as posts page in the Reading Settings, then you could check it by doing this:

if ( is_front_page() && is_home() ) {
  // Default homepage
} elseif ( is_front_page() ) {
  // static homepage
} elseif ( is_home() ) {
  // blog page
} else {
  //everyting else
}

When you use is_home() and is_front_page(), you have to use them in the right order to avoid bugs and to test every user configuration.

(Source: Conditional Tags - The Blog Page)

Or simply:

if ( !is_front_page() && is_home() ) {
  // blog page
}

Or more simply (I suppose):

if ( is_home() ) {
  // blog page
}
share|improve this answer
    
One use case to use if ( !is_front_page() && is_home() ), at least in my opinion, is if you are distributing a theme that has different layout style for the default homepage and the blog page. –  gmaggio Aug 3 at 7:03

Depending what you're trying to accomplish, you could also use the have_posts() conditional tag combined with if/else statement as shown below.

<?php if( have_posts() ) { ?>
  <p>This page has posts</p>
<?php } else {
  echo '<p>This page does not have posts</p>';
 }
?>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.