确定页面是否为帖子页面


18

在“ 阅读设置”页面上,您可以设置“首页”和“帖子页面”。您可以检查当前页面是否is_front_page();

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

谢谢

Answers:


34

is_home() 尽管函数名称有些混乱,但仍检查“帖子页面”。


谢谢,我以为我检查了所有的东西,但我想不是...
Mike

3
$wp_query->is_posts_page
韦斯顿·鲁特

@WestonRuter对问题有正确的答案。
J

6

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_home告诉您,您拥有博客页面。


1

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

  • 类别的帖子
  • 标签的帖子
  • 日期的帖子(年,月...)
  • 主要档案室的职位

这些条件中的每一个都可以通过诸如is_category() is_tag() is_date() is_archive() And这样的许多条件标签之一进行检查 。为了更好地理解,请转至法典http://codex.wordpress.org/Conditional_Tags


0

首先检查博客相关内容,例如作者,标签,帖子类型

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


0

TL; DR

方案A。不需要在主模板文件(index.php)中确定它,因为它是它的默认模板[1]

情况B。要在页面模板(例如:page.php)中确定它,只需像这样检查它:

get_option( 'page_for_posts' ) == get_the_ID()

细节

我实际上是去研究它的源代码[2],以便能够知道wordpress如何检查值。事实证明,它正在使用该语句get_option( 'page_for_posts' )来了解Posts页面中所选值的post ID 。

是的,为此,没有类似于的官方检查器功能is_front_page()

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

参考文献

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

  2. 设置的源代码› 阅读设置github.com/WordPress/.../wp - admin/options - reading.php

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.