What are the different ways to detect home page in wordpress?

is_front_page() is what you want.

I assume, by the fact that is_home() is not working, that your home page is static, according to the settings in wp-admin.

is_home() returns true on your main blog page whereas is_front_page() returns true on which ever page is defined as your front page, feed or not.

From codex:

This Conditional Tag checks if the main page is a posts or a Page. This is a boolean function, meaning it returns either TRUE or FALSE. It returns TRUE when the main blog page is being displayed and the Settings->Reading->Front page displays is set to "Your latest posts", or when is set to "A static page" and the "Front Page" value is the current Page being displayed.


I just do the following:

if ( $_SERVER["REQUEST_URI"] == '/' ) { }

It works and doesn't overcomplicate things, especially as is_front_page() and is_home() don't always work as you'd expect them to.


from outside the loop:

if(get_option("page_on_front") == $post->ID){
    //do front page stuff here
}