确定页面是否为帖子页面

时间:2011-04-14 作者:mike

Reading Settings 页面您可以设置“首页”和“贴子页”。您可以检查当前页面is_front_page();

“帖子页面”是否有类似的功能。我注意到了is_page(); 不适用于此特殊页面。

谢谢

6 个回复
最合适的回答,由SO网友:goldenapples 整理而成

is_home() 检查“Posts页面”,尽管函数名有些混乱。

SO网友:D.A.H

Wordpress提供了7种主要模板页面类型,可以通过这种方式确定

if ( is_main_query() ) {
    // Error
    if ( is_404() ) {
        ;
    }
    // Front page
    if ( is_front_page() ) {
        ;
    }
    // Archive
    if ( is_archive() ) {
        ;
    }
    // Comments popup
    if ( is_comments_popup() ) {
        ;
    }
    // Search
    if ( is_search() ) {
        ;
    }
    // Singular
    if ( is_singular() ) {
        ;
    }
    // Home - the blog page
    if ( is_home() ) {
        ;
    }
}
is\\u home告诉您,您拥有博客页面。

SO网友:Bainternet

“帖子页面”通常是以下内容的存档:

类别帖子标签帖子日期帖子(年、月…)

  • 主存档的帖子可以通过许多条件标签中的一个进行检查,如is_category() is_tag() is_date() is_archive()还有更多。为了更好地理解,请看一下法典http://codex.wordpress.org/Conditional_Tags

  • SO网友:Hidayt Rahman

    First check the blogs related things like author, tag, post type

    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 ;
      }
    
    现在检查并返回您想要的东西

    function check_post_type(){
        $postType;
        if (is_blog())
          {
             $postType = \'I am post\';
          } else
           {
              $postType = \'I am page\';
           };
        return $postType;
      }
    
    像老板一样使用它<?php echo check_post_type();?>

    幸亏Wes Bos

    SO网友:C-Dev

    https://codex.wordpress.org/Conditional_Tags 在WordPress Codex中,您可以这样引用页面:

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

    SO网友:Abel Melquiades Callejo

    TL;DR公司

    Case A. 无需在主模板文件(index.php)中确定它,因为它是它的默认模板。

    Case B. 要在页面模板(例如:page.php)中确定它,只需进行如下检查:

    get_option( \'page_for_posts\' ) == get_the_ID()
    

    详细信息

    我真的去挖掘它的源代码,只是为了知道wordpress是如何检查值的。事实证明,它使用的是get_option( \'page_for_posts\' ) 要知道Posts page.

    所以,是的,为了这个目的,没有类似于is_front_page().

    只要知道所选页面的ID,就可以将其用于检查过程。

    参考WordPress Codex,主题开发,codex.wordpress.org/Theme_Development

    的源代码SettingsReading Settings, github.com/WordPress/.../wp-admin/options-reading.php

    结束

    相关推荐

    过滤NEXT_POSTS_LINK和PREVICE_POSTS_LINK的URL

    我正在与qTranslate plugin 创建多语言网站。除了在next_posts_link &;previous_posts_link 模板标记。当用户选择了其他语言时,URL应更改为:http://mysite.com/test/page/2 (对于默认语言)到http://mysite.com/fr/test/page/2 (法语)该插件提供了使用qtrans_convertURL($url) 作用我遇到的问题是找到一个合适的钩子或过滤器,允许我通过next\\u posts\\u lin