Changeset 15531 for trunk/wp-includes/query.php
- Timestamp:
- 08/25/2010 06:05:33 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/query.php
r15501 r15531 99 99 100 100 /** 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() 103 106 * @since 1.5.0 104 107 * @uses $wp_query 105 108 * 106 * @return bool True if page is archive.109 * @return bool 107 110 */ 108 111 function is_archive() { 109 112 global $wp_query; 110 113 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() 117 121 * @since 2.0.0 118 122 * @uses $wp_query 119 123 * 120 * @return bool True if page is attachment.124 * @return bool 121 125 */ 122 126 function is_attachment() { 123 127 global $wp_query; 124 128 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() 142 139 * @since 1.5.0 143 140 * @uses $wp_query 144 141 * 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 */ 145 function 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() 177 158 * @since 1.5.0 178 159 * @uses $wp_query 179 160 * 180 * @param string|array $category Optional.161 * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs. 181 162 * @return bool 182 163 */ 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 * 164 function 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() 209 177 * @since 2.3.0 210 178 * @uses $wp_query 211 179 * 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. 213 181 * @return bool 214 182 */ … … 216 184 global $wp_query; 217 185 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() 244 200 * @since 2.5.0 245 201 * @uses $wp_query 246 202 * 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 Slug203 * @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. 249 205 * @return bool 250 206 */ … … 252 208 global $wp_query, $wp_taxonomies; 253 209 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 ); 272 211 } 273 212 … … 275 214 * Whether the current URL is within the comments popup window. 276 215 * 216 * @see WP_Query::is_comments_popup() 277 217 * @since 1.5.0 278 218 * @uses $wp_query … … 283 223 global $wp_query; 284 224 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() 291 232 * @since 1.5.0 292 233 * @uses $wp_query … … 297 238 global $wp_query; 298 239 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() 305 247 * @since 1.5.0 306 248 * @uses $wp_query … … 311 253 global $wp_query; 312 254 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() 319 262 * @since 1.5.0 320 263 * @uses $wp_query … … 325 268 global $wp_query; 326 269 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() 333 277 * @since 3.0.0 334 278 * @uses $wp_query … … 339 283 global $wp_query; 340 284 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() 347 301 * @since 2.5.0 348 302 * @uses is_home() … … 352 306 */ 353 307 function 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() 370 326 * @since 1.5.0 371 327 * @uses $wp_query … … 376 332 global $wp_query; 377 333 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() 384 341 * @since 1.5.0 385 342 * @uses $wp_query … … 390 347 global $wp_query; 391 348 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() 406 362 * @since 1.5.0 407 363 * @uses $wp_query 408 364 * 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. 410 366 * @return bool 411 367 */ 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 * 368 function 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() 438 378 * @since 1.5.0 439 379 * @uses $wp_query … … 444 384 global $wp_query; 445 385 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 */ 398 function 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 */ 413 function 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() 455 423 * @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 457 425 * 458 426 * @return bool 459 427 */ 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 * 428 function 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. 475 450 * @return bool 476 451 */ 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 * 452 function 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 489 472 * @return bool 490 473 */ 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 * 474 function 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() 500 484 * @since 1.5.0 501 485 * @uses $wp_query … … 503 487 * @return bool 504 488 */ 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 * 489 function 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() 520 499 * @since 1.5.0 521 500 * @uses $wp_query 522 501 * 523 * @param mixed $post Either post or list of posts to test against.524 502 * @return bool 525 503 */ 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 * 504 function 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() 552 514 * @since 1.5.0 553 515 * @uses $wp_query 554 516 * 555 * @param string|array $post_types Optional. Post type or types to check in current query.556 517 * @return bool 557 518 */ 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 * 519 function 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() 572 529 * @since 1.5.0 573 530 * @uses $wp_query … … 575 532 * @return bool 576 533 */ 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.0587 * @uses $wp_query588 *589 * @return bool590 */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.0601 * @uses $wp_query602 *603 * @return bool604 */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.0615 * @uses $wp_query616 *617 * @return bool True, if nothing is found matching WordPress Query.618 */619 534 function is_404() { 620 535 global $wp_query; 621 536 622 return $wp_query->is_404 ;537 return $wp_query->is_404(); 623 538 } 624 539 … … 2788 2703 } 2789 2704 } 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 } 2790 3158 } 2791 3159
Note: See TracChangeset
for help on using the changeset viewer.