WordPress.org

Make WordPress Core

Changeset 15531


Ignore:
Timestamp:
08/25/10 18:05:33 (7 years ago)
Author:
ryan
Message:

is_* WP_Query methods. Props mdawaffe. fixes #14494

Location:
trunk/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/deprecated.php

    r15515 r15531  
    25362536} 
    25372537 
     2538/** 
     2539 * Is the current admin page generated by a plugin? 
     2540 * 
     2541 * @since 1.5.0 
     2542 * @deprecated 3.1 
     2543 * @deprecated Use global $plugin_page and/or get_plugin_page_hookname() hooks. 
     2544 * 
     2545 * @global $plugin_page 
     2546 * 
     2547 * @return bool 
     2548 */ 
     2549function is_plugin_page() { 
     2550    _deprecated_function( __FUNCTION__, '3.1'  ); 
     2551 
     2552    global $plugin_page; 
     2553 
     2554    if ( isset($plugin_page) ) 
     2555        return true; 
     2556 
     2557    return false; 
     2558} 
  • trunk/wp-includes/query.php

    r15501 r15531  
    9999 
    100100/** 
    101  * Is query requesting an archive page. 
    102  * 
     101 * Is the query for an archive page? 
     102 * 
     103 * Month, Year, Category, Author, ... 
     104 * 
     105 * @see WP_Query::is_archive() 
    103106 * @since 1.5.0 
    104107 * @uses $wp_query 
    105108 * 
    106  * @return bool True if page is archive. 
     109 * @return bool 
    107110 */ 
    108111function is_archive() { 
    109112    global $wp_query; 
    110113 
    111     return $wp_query->is_archive; 
    112 } 
    113  
    114 /** 
    115  * Is query requesting an attachment page. 
    116  * 
     114    return $wp_query->is_archive(); 
     115} 
     116 
     117/** 
     118 * Is the query for an attachment page? 
     119 * 
     120 * @see WP_Query::is_attachment() 
    117121 * @since 2.0.0 
    118122 * @uses $wp_query 
    119123 * 
    120  * @return bool True if page is attachment. 
     124 * @return bool 
    121125 */ 
    122126function is_attachment() { 
    123127    global $wp_query; 
    124128 
    125     return $wp_query->is_attachment; 
    126 } 
    127  
    128 /** 
    129  * Is query requesting an author page. 
    130  * 
    131  * If the $author parameter is specified then the check will be expanded to 
    132  * include whether the queried author matches the one given in the parameter. 
    133  * You can match against integers and against strings. 
    134  * 
    135  * If matching against an integer, the ID should be used of the author for the 
    136  * test. If the $author is an ID and matches the author page user ID, then 
    137  * 'true' will be returned. 
    138  * 
    139  * If matching against strings, then the test will be matched against both the 
    140  * nickname and user nicename and will return true on success. 
    141  * 
     129    return $wp_query->is_attachment(); 
     130} 
     131 
     132/** 
     133 * Is the query for an author archive page? 
     134 * 
     135 * If the $author parameter is specified, this function will additionally 
     136 * check if the query is for one of the authors specified. 
     137 * 
     138 * @see WP_Query::is_author() 
    142139 * @since 1.5.0 
    143140 * @uses $wp_query 
    144141 * 
    145  * @param string|int $author Optional. Is current page this author. 
    146  * @return bool True if page is author or $author (if set). 
    147  */ 
    148 function is_author($author = '') { 
    149     global $wp_query; 
    150  
    151     if ( !$wp_query->is_author ) 
    152         return false; 
    153  
    154     if ( empty($author) ) 
    155         return true; 
    156  
    157     $author_obj = $wp_query->get_queried_object(); 
    158  
    159     $author = (array) $author; 
    160  
    161     if ( in_array( $author_obj->ID, $author ) ) 
    162         return true; 
    163     elseif ( in_array( $author_obj->nickname, $author ) ) 
    164         return true; 
    165     elseif ( in_array( $author_obj->user_nicename, $author ) ) 
    166         return true; 
    167  
    168     return false; 
    169 } 
    170  
    171 /** 
    172  * Whether current page query contains a category name or given category name. 
    173  * 
    174  * The category list can contain category IDs, names, or category slugs. If any 
    175  * of them are part of the query, then it will return true. 
    176  * 
     142 * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames 
     143 * @return bool 
     144 */ 
     145function is_author( $author = '' ) { 
     146    global $wp_query; 
     147 
     148    return $wp_query->is_author( $author ); 
     149} 
     150 
     151/** 
     152 * Is the query for a category archive page? 
     153 * 
     154 * If the $category parameter is specified, this function will additionally 
     155 * check if the query is for one of the categories specified. 
     156 * 
     157 * @see WP_Query::is_category() 
    177158 * @since 1.5.0 
    178159 * @uses $wp_query 
    179160 * 
    180  * @param string|array $category Optional. 
     161 * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs. 
    181162 * @return bool 
    182163 */ 
    183 function is_category($category = '') { 
    184     global $wp_query; 
    185  
    186     if ( !$wp_query->is_category ) 
    187         return false; 
    188  
    189     if ( empty($category) ) 
    190         return true; 
    191  
    192     $cat_obj = $wp_query->get_queried_object(); 
    193  
    194     $category = (array) $category; 
    195  
    196     if ( in_array( $cat_obj->term_id, $category ) ) 
    197         return true; 
    198     elseif ( in_array( $cat_obj->name, $category ) ) 
    199         return true; 
    200     elseif ( in_array( $cat_obj->slug, $category ) ) 
    201         return true; 
    202  
    203     return false; 
    204 } 
    205  
    206 /** 
    207  * Whether the current page query has the given tag slug or contains tag. 
    208  * 
     164function is_category( $category = '' ) { 
     165    global $wp_query; 
     166 
     167    return $wp_query->is_category( $category ); 
     168} 
     169 
     170/** 
     171 * Is the query for a tag archive page? 
     172 * 
     173 * If the $tag parameter is specified, this function will additionally 
     174 * check if the query is for one of the tags specified. 
     175 * 
     176 * @see WP_Query::is_tag() 
    209177 * @since 2.3.0 
    210178 * @uses $wp_query 
    211179 * 
    212  * @param string|array $slug Optional. Single tag or list of tags to check for. 
     180 * @param mixed $slug Optional. Tag slug or array of slugs. 
    213181 * @return bool 
    214182 */ 
     
    216184    global $wp_query; 
    217185 
    218     if ( !$wp_query->is_tag ) 
    219         return false; 
    220  
    221     if ( empty( $slug ) ) 
    222         return true; 
    223  
    224     $tag_obj = $wp_query->get_queried_object(); 
    225  
    226     $slug = (array) $slug; 
    227  
    228     if ( in_array( $tag_obj->slug, $slug ) ) 
    229         return true; 
    230  
    231     return false; 
    232 } 
    233  
    234 /** 
    235  * Whether the current query is for the given taxonomy and/or term. 
    236  * 
    237  * If no taxonomy argument is set, returns true if any taxonomy is queried. 
    238  * If the taxonomy argument is passed but no term argument, returns true 
    239  *    if the taxonomy or taxonomies in the argument are being queried. 
    240  * If both taxonomy and term arguments are passed, returns true 
    241  *    if the current query is for a term contained in the terms argument 
    242  *    which has a taxonomy contained in the taxonomy argument. 
    243  * 
     186    return $wp_query->is_tag( $slug ); 
     187} 
     188 
     189/** 
     190 * Is the query for a taxonomy archive page? 
     191 * 
     192 * If the $taxonomy parameter is specified, this function will additionally 
     193 * check if the query is for that specific $taxonomy. 
     194 * 
     195 * If the $term parameter is specified in addition to the $taxonomy parameter, 
     196 * this function will additionally check if the query is for one of the terms 
     197 * specified. 
     198 * 
     199 * @see WP_Query::is_tax() 
    244200 * @since 2.5.0 
    245201 * @uses $wp_query 
    246202 * 
    247  * @param string|array $taxonomy Optional. Taxonomy slug or slugs to check in current query. 
    248  * @param int|array|string $term. Optional. A single or array of, The term's ID, Name or Slug 
     203 * @param mixed $taxonomy Optional. Taxonomy slug or slugs. 
     204 * @param mixed $term. Optional. Term ID, name, slug or array of Term IDs, names, and slugs. 
    249205 * @return bool 
    250206 */ 
     
    252208    global $wp_query, $wp_taxonomies; 
    253209 
    254     $queried_object = $wp_query->get_queried_object(); 
    255     $tax_array = array_intersect(array_keys($wp_taxonomies), (array) $taxonomy); 
    256     $term_array = (array) $term; 
    257  
    258     if ( !$wp_query->is_tax ) 
    259         return false; 
    260  
    261     if ( empty( $taxonomy ) ) 
    262         return true; 
    263  
    264     if ( empty( $term ) ) // Only a Taxonomy provided 
    265         return isset($queried_object->taxonomy) && count( $tax_array ) && in_array($queried_object->taxonomy, $tax_array); 
    266  
    267     return isset($queried_object->term_id) && 
    268             count(array_intersect( 
    269                 array($queried_object->term_id, $queried_object->name, $queried_object->slug), 
    270                 $term_array 
    271             )); 
     210    return $wp_query->is_tax( $taxonomy, $term ); 
    272211} 
    273212 
     
    275214 * Whether the current URL is within the comments popup window. 
    276215 * 
     216 * @see WP_Query::is_comments_popup() 
    277217 * @since 1.5.0 
    278218 * @uses $wp_query 
     
    283223    global $wp_query; 
    284224 
    285     return $wp_query->is_comments_popup; 
    286 } 
    287  
    288 /** 
    289  * Whether current URL is based on a date. 
    290  * 
     225    return $wp_query->is_comments_popup(); 
     226} 
     227 
     228/** 
     229 * Is the query for a date archive? 
     230 * 
     231 * @see WP_Query::is_date() 
    291232 * @since 1.5.0 
    292233 * @uses $wp_query 
     
    297238    global $wp_query; 
    298239 
    299     return $wp_query->is_date; 
    300 } 
    301  
    302 /** 
    303  * Whether current blog URL contains a day. 
    304  * 
     240    return $wp_query->is_date(); 
     241} 
     242 
     243/** 
     244 * Is the query for a day archive? 
     245 * 
     246 * @see WP_Query::is_day() 
    305247 * @since 1.5.0 
    306248 * @uses $wp_query 
     
    311253    global $wp_query; 
    312254 
    313     return $wp_query->is_day; 
    314 } 
    315  
    316 /** 
    317  * Whether current page query is feed URL. 
    318  * 
     255    return $wp_query->is_day(); 
     256} 
     257 
     258/** 
     259 * Is the query for a feed? 
     260 * 
     261 * @see WP_Query::is_feed() 
    319262 * @since 1.5.0 
    320263 * @uses $wp_query 
     
    325268    global $wp_query; 
    326269 
    327     return $wp_query->is_feed; 
    328 } 
    329  
    330 /** 
    331  * Whether current page query is comment feed URL. 
    332  * 
     270    return $wp_query->is_feed(); 
     271} 
     272 
     273/** 
     274 * Is the query for a comments feed? 
     275 * 
     276 * @see WP_Query::is_comments_feed() 
    333277 * @since 3.0.0 
    334278 * @uses $wp_query 
     
    339283    global $wp_query; 
    340284 
    341     return $wp_query->is_comment_feed; 
    342 } 
    343  
    344 /** 
    345  * Whether current page query is the front of the site. 
    346  * 
     285    return $wp_query->is_comment_feed(); 
     286} 
     287 
     288/** 
     289 * Is the query for the front page of the site? 
     290 * 
     291 * This is for what is displayed at your site's main URL. 
     292 * 
     293 * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_on_front'. 
     294 * 
     295 * If you set a static page for the front page of your site, this function will return 
     296 * true when viewing that page. 
     297 * 
     298 * Otherwise the same as @see is_home() 
     299 * 
     300 * @see WP_Query::is_front_page() 
    347301 * @since 2.5.0 
    348302 * @uses is_home() 
     
    352306 */ 
    353307function is_front_page() { 
    354     // most likely case 
    355     if ( 'posts' == get_option('show_on_front') && is_home() ) 
    356         return true; 
    357     elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') && is_page(get_option('page_on_front')) ) 
    358         return true; 
    359     else 
    360         return false; 
    361 } 
    362  
    363 /** 
    364  * Whether current page view is the blog homepage. 
    365  * 
    366  * This is the page which is showing the time based blog content of your site 
    367  * so if you set a static page for the front page of your site then this will 
    368  * only be true on the page which you set as the "Posts page" in Reading Settings. 
    369  * 
     308    global $wp_query; 
     309 
     310    return $wp_query->is_front_page(); 
     311} 
     312 
     313/** 
     314 * Is the query for the blog homepage? 
     315 * 
     316 * This is the page which shows the time based blog content of your site. 
     317 * 
     318 * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_for_posts'. 
     319 * 
     320 * If you set a static page for the front page of your site, this function will return 
     321 * true only on the page you set as the "Posts page". 
     322 * 
     323 * @see is_front_page() 
     324 * 
     325 * @see WP_Query::is_home() 
    370326 * @since 1.5.0 
    371327 * @uses $wp_query 
     
    376332    global $wp_query; 
    377333 
    378     return $wp_query->is_home; 
    379 } 
    380  
    381 /** 
    382  * Whether current page query contains a month. 
    383  * 
     334    return $wp_query->is_home(); 
     335} 
     336 
     337/** 
     338 * Is the query for a month archive? 
     339 * 
     340 * @see WP_Query::is_month() 
    384341 * @since 1.5.0 
    385342 * @uses $wp_query 
     
    390347    global $wp_query; 
    391348 
    392     return $wp_query->is_month; 
    393 } 
    394  
    395 /** 
    396  * Whether query is page or contains given page(s). 
    397  * 
    398  * Calls the function without any parameters will only test whether the current 
    399  * query is of the page type. Either a list or a single item can be tested 
    400  * against for whether the query is a page and also is the value or one of the 
    401  * values in the page parameter. 
    402  * 
    403  * The parameter can contain the page ID, page title, or page name. The 
    404  * parameter can also be an array of those three values. 
    405  * 
     349    return $wp_query->is_month(); 
     350} 
     351 
     352/** 
     353 * Is the query for a single Page? 
     354 * 
     355 * If the $page parameter is specified, this function will additionally 
     356 * check if the query is for one of the Pages specified. 
     357 * 
     358 * @see is_single() 
     359 * @see is_singular() 
     360 * 
     361 * @see WP_Query::is_single() 
    406362 * @since 1.5.0 
    407363 * @uses $wp_query 
    408364 * 
    409  * @param mixed $page Either page or list of pages to test against. 
     365 * @param mixed $page Page ID, title, slug, or array of Page IDs, titles, and slugs. 
    410366 * @return bool 
    411367 */ 
    412 function is_page($page = '') { 
    413     global $wp_query; 
    414  
    415     if ( !$wp_query->is_page ) 
    416         return false; 
    417  
    418     if ( empty($page) ) 
    419         return true; 
    420  
    421     $page_obj = $wp_query->get_queried_object(); 
    422  
    423     $page = (array) $page; 
    424  
    425     if ( in_array( $page_obj->ID, $page ) ) 
    426         return true; 
    427     elseif ( in_array( $page_obj->post_title, $page ) ) 
    428         return true; 
    429     else if ( in_array( $page_obj->post_name, $page ) ) 
    430         return true; 
    431  
    432     return false; 
    433 } 
    434  
    435 /** 
    436  * Whether query contains multiple pages for the results. 
    437  * 
     368function is_page( $page = '' ) { 
     369    global $wp_query; 
     370 
     371    return $wp_query->is_page( $page ); 
     372} 
     373 
     374/** 
     375 * Is the query for paged result and not for the first page? 
     376 * 
     377 * @see WP_Query::is_paged() 
    438378 * @since 1.5.0 
    439379 * @uses $wp_query 
     
    444384    global $wp_query; 
    445385 
    446     return $wp_query->is_paged; 
    447 } 
    448  
    449 /** 
    450  * Whether the current page was created by a plugin. 
    451  * 
    452  * The plugin can set this by using the global $plugin_page and setting it to 
    453  * true. 
    454  * 
     386    return $wp_query->is_paged(); 
     387} 
     388 
     389/** 
     390 * Is the query for a post or page preview? 
     391 * 
     392 * @see WP_Query::is_preview() 
     393 * @since 2.0.0 
     394 * @uses $wp_query 
     395 * 
     396 * @return bool 
     397 */ 
     398function is_preview() { 
     399    global $wp_query; 
     400 
     401    return $wp_query->is_preview(); 
     402} 
     403 
     404/** 
     405 * Is the query for the robots file? 
     406 * 
     407 * @see WP_Query::is_robots() 
     408 * @since 2.1.0 
     409 * @uses $wp_query 
     410 * 
     411 * @return bool 
     412 */ 
     413function is_robots() { 
     414    global $wp_query; 
     415 
     416    return $wp_query->is_robots(); 
     417} 
     418 
     419/** 
     420 * Is the query for a search? 
     421 * 
     422 * @see WP_Query::is_search() 
    455423 * @since 1.5.0 
    456  * @global bool $plugin_page Used by plugins to tell the query that current is a plugin page. 
     424 * @uses $wp_query 
    457425 * 
    458426 * @return bool 
    459427 */ 
    460 function is_plugin_page() { 
    461     global $plugin_page; 
    462  
    463     if ( isset($plugin_page) ) 
    464         return true; 
    465  
    466     return false; 
    467 } 
    468  
    469 /** 
    470  * Whether the current query is preview of post or page. 
    471  * 
    472  * @since 2.0.0 
    473  * @uses $wp_query 
    474  * 
     428function is_search() { 
     429    global $wp_query; 
     430 
     431    return $wp_query->is_search(); 
     432} 
     433 
     434/** 
     435 * Is the query for a single post? 
     436 * 
     437 * If the $post parameter is specified, this function will additionally 
     438 * check if the query is for one of the Posts specified. 
     439 * 
     440 * Can also be used for attachments or any other post type except pages. 
     441 * 
     442 * @see is_page() 
     443 * @see is_singular() 
     444 * 
     445 * @see WP_Query::is_single() 
     446 * @since 1.5.0 
     447 * @uses $wp_query 
     448 * 
     449 * @param mixed $post Post ID, title, slug, or array of Post IDs, titles, and slugs. 
    475450 * @return bool 
    476451 */ 
    477 function is_preview() { 
    478     global $wp_query; 
    479  
    480     return $wp_query->is_preview; 
    481 } 
    482  
    483 /** 
    484  * Whether the current query post is robots. 
    485  * 
    486  * @since 2.1.0 
    487  * @uses $wp_query 
    488  * 
     452function is_single( $post = '' ) { 
     453    global $wp_query; 
     454 
     455    return $wp_query->is_single( $post ); 
     456} 
     457 
     458/** 
     459 * Is the query for a single post of any post type (post, attachment, page, ... )? 
     460 * 
     461 * If the $post_types parameter is specified, this function will additionally 
     462 * check if the query is for one of the Posts Types specified. 
     463 * 
     464 * @see is_page() 
     465 * @see is_single() 
     466 * 
     467 * @see WP_Query::is_singular() 
     468 * @since 1.5.0 
     469 * @uses $wp_query 
     470 * 
     471 * @param mixed $post_types Optional. Post Type or array of Post Types 
    489472 * @return bool 
    490473 */ 
    491 function is_robots() { 
    492     global $wp_query; 
    493  
    494     return $wp_query->is_robots; 
    495 } 
    496  
    497 /** 
    498  * Whether current query is the result of a user search. 
    499  * 
     474function is_singular( $post_types = '' ) { 
     475    global $wp_query; 
     476 
     477    return $wp_query->is_singular( $post_types ); 
     478} 
     479 
     480/** 
     481 * Is the query for a specific time? 
     482 * 
     483 * @see WP_Query::is_time() 
    500484 * @since 1.5.0 
    501485 * @uses $wp_query 
     
    503487 * @return bool 
    504488 */ 
    505 function is_search() { 
    506     global $wp_query; 
    507  
    508     return $wp_query->is_search; 
    509 } 
    510  
    511 /** 
    512  * Whether the current page query is single page. 
    513  * 
    514  * The parameter can contain the post ID, post title, or post name. The 
    515  * parameter can also be an array of those three values. 
    516  * 
    517  * This applies to other post types, attachments, pages, posts. Just means that 
    518  * the current query has only a single object. 
    519  * 
     489function is_time() { 
     490    global $wp_query; 
     491 
     492    return $wp_query->is_time(); 
     493} 
     494 
     495/** 
     496 * Is the query for a trackback endpoint call? 
     497 * 
     498 * @see WP_Query::is_trackback() 
    520499 * @since 1.5.0 
    521500 * @uses $wp_query 
    522501 * 
    523  * @param mixed $post Either post or list of posts to test against. 
    524502 * @return bool 
    525503 */ 
    526 function is_single($post = '') { 
    527     global $wp_query; 
    528  
    529     if ( !$wp_query->is_single ) 
    530         return false; 
    531  
    532     if ( empty($post) ) 
    533         return true; 
    534  
    535     $post_obj = $wp_query->get_queried_object(); 
    536  
    537     $post = (array) $post; 
    538  
    539     if ( in_array( $post_obj->ID, $post ) ) 
    540         return true; 
    541     elseif ( in_array( $post_obj->post_title, $post ) ) 
    542         return true; 
    543     elseif ( in_array( $post_obj->post_name, $post ) ) 
    544         return true; 
    545  
    546     return false; 
    547 } 
    548  
    549 /** 
    550  * Whether is single post, is a page, or is an attachment. 
    551  * 
     504function is_trackback() { 
     505    global $wp_query; 
     506 
     507    return $wp_query->is_trackback(); 
     508} 
     509 
     510/** 
     511 * Is the query for a specific year? 
     512 * 
     513 * @see WP_Query::is_year() 
    552514 * @since 1.5.0 
    553515 * @uses $wp_query 
    554516 * 
    555  * @param string|array $post_types Optional. Post type or types to check in current query. 
    556517 * @return bool 
    557518 */ 
    558 function is_singular($post_types = '') { 
    559     global $wp_query; 
    560  
    561     if ( empty($post_types) || !$wp_query->is_singular ) 
    562         return $wp_query->is_singular; 
    563  
    564     $post_obj = $wp_query->get_queried_object(); 
    565  
    566     return in_array($post_obj->post_type, (array) $post_types); 
    567 } 
    568  
    569 /** 
    570  * Whether the query contains a time. 
    571  * 
     519function is_year() { 
     520    global $wp_query; 
     521 
     522    return $wp_query->is_year(); 
     523} 
     524 
     525/** 
     526 * Is the query a 404 (returns no results)? 
     527 * 
     528 * @see WP_Query::is_404() 
    572529 * @since 1.5.0 
    573530 * @uses $wp_query 
     
    575532 * @return bool 
    576533 */ 
    577 function is_time() { 
    578     global $wp_query; 
    579  
    580     return $wp_query->is_time; 
    581 } 
    582  
    583 /** 
    584  * Whether the query is a trackback. 
    585  * 
    586  * @since 1.5.0 
    587  * @uses $wp_query 
    588  * 
    589  * @return bool 
    590  */ 
    591 function is_trackback() { 
    592     global $wp_query; 
    593  
    594     return $wp_query->is_trackback; 
    595 } 
    596  
    597 /** 
    598  * Whether the query contains a year. 
    599  * 
    600  * @since 1.5.0 
    601  * @uses $wp_query 
    602  * 
    603  * @return bool 
    604  */ 
    605 function is_year() { 
    606     global $wp_query; 
    607  
    608     return $wp_query->is_year; 
    609 } 
    610  
    611 /** 
    612  * Whether current page query is a 404 and no results for WordPress query. 
    613  * 
    614  * @since 1.5.0 
    615  * @uses $wp_query 
    616  * 
    617  * @return bool True, if nothing is found matching WordPress Query. 
    618  */ 
    619534function is_404() { 
    620535    global $wp_query; 
    621536 
    622     return $wp_query->is_404; 
     537    return $wp_query->is_404(); 
    623538} 
    624539 
     
    27882703        } 
    27892704    } 
     2705 
     2706    /** 
     2707     * Is the query for an archive page? 
     2708     * 
     2709     * Month, Year, Category, Author, ... 
     2710     * 
     2711     * @since 3.1.0 
     2712     * 
     2713     * @return bool 
     2714     */ 
     2715    function is_archive() { 
     2716        return (bool) $this->is_archive; 
     2717    } 
     2718 
     2719    /** 
     2720     * Is the query for an attachment page? 
     2721     * 
     2722     * @since 3.1.0 
     2723     * 
     2724     * @return bool 
     2725     */ 
     2726    function is_attachment() { 
     2727        return (bool) $this->is_attachment; 
     2728    } 
     2729 
     2730    /** 
     2731     * Is the query for an author archive page? 
     2732     * 
     2733     * If the $author parameter is specified, this function will additionally 
     2734     * check if the query is for one of the authors specified. 
     2735     * 
     2736     * @since 3.1.0 
     2737     * 
     2738     * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames 
     2739     * @return bool 
     2740     */ 
     2741    function is_author( $author = '' ) { 
     2742        if ( !$this->is_author ) 
     2743            return false; 
     2744 
     2745        if ( empty($author) ) 
     2746            return true; 
     2747 
     2748        $author_obj = $this->get_queried_object(); 
     2749 
     2750        $author = (array) $author; 
     2751 
     2752        if ( in_array( $author_obj->ID, $author ) ) 
     2753            return true; 
     2754        elseif ( in_array( $author_obj->nickname, $author ) ) 
     2755            return true; 
     2756        elseif ( in_array( $author_obj->user_nicename, $author ) ) 
     2757            return true; 
     2758 
     2759        return false; 
     2760    } 
     2761 
     2762    /** 
     2763     * Is the query for a category archive page? 
     2764     * 
     2765     * If the $category parameter is specified, this function will additionally 
     2766     * check if the query is for one of the categories specified. 
     2767     * 
     2768     * @since 3.1.0 
     2769     * 
     2770     * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs. 
     2771     * @return bool 
     2772     */ 
     2773    function is_category( $category = '' ) { 
     2774        if ( !$this->is_category ) 
     2775            return false; 
     2776 
     2777        if ( empty($category) ) 
     2778            return true; 
     2779 
     2780        $cat_obj = $this->get_queried_object(); 
     2781 
     2782        $category = (array) $category; 
     2783 
     2784        if ( in_array( $cat_obj->term_id, $category ) ) 
     2785            return true; 
     2786        elseif ( in_array( $cat_obj->name, $category ) ) 
     2787            return true; 
     2788        elseif ( in_array( $cat_obj->slug, $category ) ) 
     2789            return true; 
     2790 
     2791        return false; 
     2792    } 
     2793 
     2794    /** 
     2795     * Is the query for a tag archive page? 
     2796     * 
     2797     * If the $tag parameter is specified, this function will additionally 
     2798     * check if the query is for one of the tags specified. 
     2799     * 
     2800     * @since 3.1.0 
     2801     * 
     2802     * @param mixed $slug Optional. Tag slug or array of slugs. 
     2803     * @return bool 
     2804     */ 
     2805    function is_tag( $slug = '' ) { 
     2806        if ( !$this->is_tag ) 
     2807            return false; 
     2808 
     2809        if ( empty( $slug ) ) 
     2810            return true; 
     2811 
     2812        $tag_obj = $this->get_queried_object(); 
     2813 
     2814        $slug = (array) $slug; 
     2815 
     2816        if ( in_array( $tag_obj->slug, $slug ) ) 
     2817            return true; 
     2818 
     2819        return false; 
     2820    } 
     2821 
     2822    /** 
     2823     * Is the query for a taxonomy archive page? 
     2824     * 
     2825     * If the $taxonomy parameter is specified, this function will additionally 
     2826     * check if the query is for that specific $taxonomy. 
     2827     * 
     2828     * If the $term parameter is specified in addition to the $taxonomy parameter, 
     2829     * this function will additionally check if the query is for one of the terms 
     2830     * specified. 
     2831     * 
     2832     * @since 3.1.0 
     2833     * 
     2834     * @param mixed $taxonomy Optional. Taxonomy slug or slugs. 
     2835     * @param mixed $term. Optional. Term ID, name, slug or array of Term IDs, names, and slugs. 
     2836     * @return bool 
     2837     */ 
     2838    function is_tax( $taxonomy = '', $term = '' ) { 
     2839        global $wp_taxonomies; 
     2840 
     2841        if ( !$this->is_tax ) 
     2842            return false; 
     2843 
     2844        if ( empty( $taxonomy ) ) 
     2845            return true; 
     2846 
     2847        $queried_object = $this->get_queried_object(); 
     2848        $tax_array = array_intersect( array_keys( $wp_taxonomies ), (array) $taxonomy ); 
     2849        $term_array = (array) $term; 
     2850 
     2851        if ( empty( $term ) ) // Only a Taxonomy provided 
     2852            return isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array ); 
     2853 
     2854        return isset( $queried_object->term_id ) && 
     2855            count( array_intersect( 
     2856                array( $queried_object->term_id, $queried_object->name, $queried_object->slug ), 
     2857                $term_array 
     2858            ) ); 
     2859    } 
     2860 
     2861    /** 
     2862     * Whether the current URL is within the comments popup window. 
     2863     * 
     2864     * @since 3.1.0 
     2865     * 
     2866     * @return bool 
     2867     */ 
     2868    function is_comments_popup() { 
     2869        return (bool) $this->is_comments_popup; 
     2870    } 
     2871 
     2872    /** 
     2873     * Is the query for a date archive? 
     2874     * 
     2875     * @since 3.1.0 
     2876     * 
     2877     * @return bool 
     2878     */ 
     2879    function is_date() { 
     2880        return (bool) $this->is_date; 
     2881    } 
     2882 
     2883 
     2884    /** 
     2885     * Is the query for a day archive? 
     2886     * 
     2887     * @since 3.1.0 
     2888     * 
     2889     * @return bool 
     2890     */ 
     2891    function is_day() { 
     2892        return (bool) $this->is_day; 
     2893    } 
     2894 
     2895    /** 
     2896     * Is the query for a feed? 
     2897     * 
     2898     * @since 3.1.0 
     2899     * 
     2900     * @return bool 
     2901     */ 
     2902    function is_feed() { 
     2903        return (bool) $this->is_feed; 
     2904    } 
     2905 
     2906    /** 
     2907     * Is the query for a comments feed? 
     2908     * 
     2909     * @since 3.1.0 
     2910     * 
     2911     * @return bool 
     2912     */ 
     2913    function is_comment_feed() { 
     2914        return (bool) $this->is_comment_feed; 
     2915    } 
     2916 
     2917    /** 
     2918     * Is the query for the front page of the site? 
     2919     * 
     2920     * This is for what is displayed at your site's main URL. 
     2921     * 
     2922     * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_on_front'. 
     2923     * 
     2924     * If you set a static page for the front page of your site, this function will return 
     2925     * true when viewing that page. 
     2926     * 
     2927     * Otherwise the same as @see WP_Query::is_home() 
     2928     * 
     2929     * @since 3.1.0 
     2930     * @uses is_home() 
     2931     * @uses get_option() 
     2932     * 
     2933     * @return bool True, if front of site. 
     2934     */ 
     2935    function is_front_page() { 
     2936        // most likely case 
     2937        if ( 'posts' == get_option( 'show_on_front') && $this->is_home() ) 
     2938            return true; 
     2939        elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) ) 
     2940            return true; 
     2941        else 
     2942            return false; 
     2943    } 
     2944 
     2945    /** 
     2946     * Is the query for the blog homepage? 
     2947     * 
     2948     * This is the page which shows the time based blog content of your site. 
     2949     * 
     2950     * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_for_posts'. 
     2951     * 
     2952     * If you set a static page for the front page of your site, this function will return 
     2953     * true only on the page you set as the "Posts page". 
     2954     * 
     2955     * @see WP_Query::is_front_page() 
     2956     * 
     2957     * @since 3.1.0 
     2958     * 
     2959     * @return bool True if blog view homepage. 
     2960     */ 
     2961    function is_home() { 
     2962        return (bool) $this->is_home; 
     2963    } 
     2964 
     2965    /** 
     2966     * Is the query for a month archive? 
     2967     * 
     2968     * @since 3.1.0 
     2969     * 
     2970     * @return bool 
     2971     */ 
     2972    function is_month() { 
     2973        return (bool) $this->is_month; 
     2974    } 
     2975 
     2976    /** 
     2977     * Is the query for a single Page? 
     2978     * 
     2979     * If the $page parameter is specified, this function will additionally 
     2980     * check if the query is for one of the Pages specified. 
     2981     * 
     2982     * @see WP_Query::is_single() 
     2983     * @see WP_Query::is_singular() 
     2984     * 
     2985     * @since 3.1.0 
     2986     * 
     2987     * @param mixed $page Page ID, title, slug, or array of Page IDs, titles, and slugs. 
     2988     * @return bool 
     2989     */ 
     2990    function is_page( $page = '' ) { 
     2991        if ( !$this->is_page ) 
     2992            return false; 
     2993 
     2994        if ( empty( $page ) ) 
     2995            return true; 
     2996 
     2997        $page_obj = $this->get_queried_object(); 
     2998 
     2999        $page = (array) $page; 
     3000 
     3001        if ( in_array( $page_obj->ID, $page ) ) 
     3002            return true; 
     3003        elseif ( in_array( $page_obj->post_title, $page ) ) 
     3004            return true; 
     3005        else if ( in_array( $page_obj->post_name, $page ) ) 
     3006            return true; 
     3007 
     3008        return false; 
     3009    } 
     3010 
     3011    /** 
     3012     * Is the query for paged result and not for the first page? 
     3013     * 
     3014     * @since 3.1.0 
     3015     * 
     3016     * @return bool                                                                   
     3017     */ 
     3018    function is_paged() { 
     3019        return (bool) $this->is_paged; 
     3020    } 
     3021 
     3022    /** 
     3023     * Is the query for a post or page preview? 
     3024     * 
     3025     * @since 3.1.0 
     3026     * 
     3027     * @return bool 
     3028     */ 
     3029    function is_preview() { 
     3030        return (bool) $this->is_preview; 
     3031    } 
     3032 
     3033    /** 
     3034     * Is the query for the robots file? 
     3035     * 
     3036     * @since 3.1.0 
     3037     * 
     3038     * @return bool 
     3039     */ 
     3040    function is_robots() { 
     3041        return (bool) $this->is_robots; 
     3042    } 
     3043 
     3044    /** 
     3045     * Is the query for a search? 
     3046     * 
     3047     * @since 3.1.0 
     3048     * 
     3049     * @return bool 
     3050     */ 
     3051    function is_search() { 
     3052        return (bool) $this->is_search; 
     3053    } 
     3054 
     3055    /** 
     3056     * Is the query for a single post? 
     3057     * 
     3058     * If the $post parameter is specified, this function will additionally 
     3059     * check if the query is for one of the Posts specified. 
     3060     * 
     3061     * Can also be used for attachments or any other post type except pages. 
     3062     * 
     3063     * @see WP_Query::is_page() 
     3064     * @see WP_Query::is_singular() 
     3065     * 
     3066     * @since 3.1.0 
     3067     * 
     3068     * @param mixed $post Post ID, title, slug, or array of Post IDs, titles, and slugs. 
     3069     * @return bool 
     3070     */ 
     3071    function is_single( $post = '' ) { 
     3072        if ( !$this->is_single ) 
     3073            return false; 
     3074 
     3075        if ( empty($post) ) 
     3076            return true; 
     3077 
     3078        $post_obj = $this->get_queried_object(); 
     3079 
     3080        $post = (array) $post; 
     3081 
     3082        if ( in_array( $post_obj->ID, $post ) ) 
     3083            return true; 
     3084        elseif ( in_array( $post_obj->post_title, $post ) ) 
     3085            return true; 
     3086        elseif ( in_array( $post_obj->post_name, $post ) ) 
     3087            return true; 
     3088 
     3089        return false; 
     3090    } 
     3091 
     3092    /** 
     3093     * Is the query for a single post of any post type (post, attachment, page, ... )? 
     3094     * 
     3095     * If the $post_types parameter is specified, this function will additionally 
     3096     * check if the query is for one of the Posts Types specified. 
     3097     * 
     3098     * @see WP_Query::is_page() 
     3099     * @see WP_Query::is_single() 
     3100     * 
     3101     * @since 3.1.0 
     3102     * 
     3103     * @param mixed $post_types Optional. Post Type or array of Post Types 
     3104     * @return bool 
     3105     */ 
     3106    function is_singular( $post_types = '' ) { 
     3107        if ( empty( $post_types ) || !$this->is_singular ) 
     3108            return $this->is_singular; 
     3109 
     3110        $post_obj = $this->get_queried_object(); 
     3111 
     3112        return in_array( $post_obj->post_type, (array) $post_types ); 
     3113    } 
     3114 
     3115    /** 
     3116     * Is the query for a specific time? 
     3117     * 
     3118     * @since 3.1.0 
     3119     * 
     3120     * @return bool 
     3121     */ 
     3122    function is_time() { 
     3123        return (bool) $this->is_time; 
     3124    } 
     3125 
     3126    /** 
     3127     * Is the query for a trackback endpoint call? 
     3128     * 
     3129     * @since 3.1.0 
     3130     * 
     3131     * @return bool 
     3132     */ 
     3133    function is_trackback() { 
     3134        return (bool) $this->is_trackback; 
     3135    } 
     3136 
     3137    /** 
     3138     * Is the query for a specific year? 
     3139     * 
     3140     * @since 3.1.0 
     3141     * 
     3142     * @return bool 
     3143     */ 
     3144    function is_year() { 
     3145        return (bool) $this->is_year; 
     3146    } 
     3147 
     3148    /** 
     3149     * Is the query a 404 (returns no results)? 
     3150     * 
     3151     * @since 3.1.0 
     3152     * 
     3153     * @return bool 
     3154     */ 
     3155    function is_404() { 
     3156        return (bool) $this->is_404; 
     3157    } 
    27903158} 
    27913159 
Note: See TracChangeset for help on using the changeset viewer.