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

后端 未结 7 745
自闭症患者
自闭症患者 2021-02-06 04:59

What are the different ways to detect wordpress homepage

except is_front_page() and is_home()

Thanks

相关标签:
7条回答
  • 2021-02-06 05:27

    In many situations a Wordpress site can have is_home and is_frontpage both eval as true on the REAL homepage and also on the main blog page. After building sites in Wordpress for about 4 years this still bothers me.

    For example if you have a site where you have your latest posts on your homepage with maybe a slider or some other homepage-centric elements, AND have another blog page, then is_frontpage and is_home will both eval as true on BOTH pages. So Wordpress does not have a clear conditional function for the true homepage, at least the way most people think of the homepage of a website.

    So I agree with Liam that if you get into a confusing situation, something like if ( $_SERVER["REQUEST_URI"] == '/' ) { }

    is more reliable.

    0 讨论(0)
  • 2021-02-06 05:34

    is_home() is the way to go.

    Have you tried this method and it doesn't work? If yes, it has usually something to do with the mod_rewrite settings or the wordpress settings itself.

    0 讨论(0)
  • 2021-02-06 05:35

    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.

    0 讨论(0)
  • 2021-02-06 05:37

    For me is_front_page() and is_home() doesn't work in ways I need to check the homepage, so instead I write this condition:

    global $wp;  
    $current_url = home_url(add_query_arg(array($_GET), $wp->request));
    if ($current_url==get_site_url()) { 
        // code for homepage 
    }
    
    0 讨论(0)
  • 2021-02-06 05:39

    With Twenty Ten I use:

    <?php
     if ( $_SERVER["REQUEST_URI"] == '/' ) { ?>
       <h1 class="site-title"><?php bloginfo( 'name' ); ?></h1>
       <h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
    <?php
    } else { ?>
       <p class="site-title"><?php bloginfo( 'name' ); ?></p>
       <p class="site-description"><?php bloginfo( 'description' ); ?></p>
    <?php } ?>
    

    Works like a charm... $_SERVER is the one I always use and it always works.

    0 讨论(0)
  • 2021-02-06 05:43

    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.

    0 讨论(0)
提交回复
热议问题