WordPress.org

Make WordPress Core

Changeset 8807


Ignore:
Timestamp:
09/04/08 19:19:32 (7 years ago)
Author:
ryan
Message:

phpdoc for query.php. Props jacobsantos. fixes #7663

File:
1 edited

Legend:

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

    r8788 r8807  
    11<?php 
    2  
    3 /* 
    4  * The Big Query. 
    5  */ 
    6  
     2/** 
     3 * WordPress Query API 
     4 * 
     5 * The query API attempts to get which part of WordPress to the user is on. It 
     6 * also provides functionality to getting URL query information. 
     7 * 
     8 * @link http://codex.wordpress.org/The_Loop More information on The Loop. 
     9 * 
     10 * @package WordPress 
     11 * @subpackage Query 
     12 */ 
     13 
     14/** 
     15 * Retrieve variable in the WP_Query class. 
     16 * 
     17 * @see WP_Query::get() 
     18 * @since 1.5.0 
     19 * @uses $wp_query 
     20 * 
     21 * @param string $var The variable key to retrieve. 
     22 * @return mixed 
     23 */ 
    724function get_query_var($var) { 
    825    global $wp_query; 
     
    1128} 
    1229 
     30/** 
     31 * Set query variable. 
     32 * 
     33 * @see WP_Query::set() 
     34 * @since 2.2.0 
     35 * @uses $wp_query 
     36 * 
     37 * @param string $var Query variable key. 
     38 * @param mixed $value 
     39 * @return null 
     40 */ 
    1341function set_query_var($var, $value) { 
    1442    global $wp_query; 
     
    1745} 
    1846 
     47/** 
     48 * Setup The Loop with query parameters. 
     49 * 
     50 * This will override the current WordPress Loop and shouldn't be used more than 
     51 * once. This must not be used within the WordPress Loop. 
     52 * 
     53 * @since 1.5.0 
     54 * @uses $wp_query 
     55 * 
     56 * @param string $query 
     57 * @return array List of posts 
     58 */ 
    1959function &query_posts($query) { 
    2060    unset($GLOBALS['wp_query']); 
     
    2363} 
    2464 
     65/** 
     66 * Destroy the previous query and setup a new query. 
     67 * 
     68 * This should be used after {@link query_posts()} and before another {@link 
     69 * query_posts()}. This will remove obscure bugs that occur when the previous 
     70 * wp_query object is not destroyed properly before another is setup. 
     71 * 
     72 * @since 2.3.0 
     73 * @uses $wp_query 
     74 */ 
    2575function wp_reset_query() { 
    2676    unset($GLOBALS['wp_query']); 
     
    3787 */ 
    3888 
     89/** 
     90 * Whether the current request is in WordPress admin Panel 
     91 * 
     92 * Does not inform on whether the user is an admin! Use capability checks to 
     93 * tell if the user should be accessing a section or not. 
     94 * 
     95 * @since 1.5.1 
     96 * 
     97 * @return bool True if inside WordPress administration pages. 
     98 */ 
    3999function is_admin () { 
    40100    if ( defined('WP_ADMIN') ) 
     
    43103} 
    44104 
     105/** 
     106 * Is query requesting an archive page. 
     107 * 
     108 * @since 1.5.0 
     109 * @uses $wp_query 
     110 * 
     111 * @return bool True if page is archive. 
     112 */ 
    45113function is_archive () { 
    46114    global $wp_query; 
     
    49117} 
    50118 
     119/** 
     120 * Is query requesting an attachment page. 
     121 * 
     122 * @since 2.0.0 
     123 * @uses $wp_query 
     124 * 
     125 * @return bool True if page is attachment. 
     126 */ 
    51127function is_attachment () { 
    52128    global $wp_query; 
     
    55131} 
    56132 
     133/** 
     134 * Is query requesting an author page. 
     135 * 
     136 * If the $author parameter is specified then the check will be expanded to 
     137 * include whether the queried author matches the one given in the parameter. 
     138 * You can match against integers and against strings. 
     139 * 
     140 * If matching against an integer, the ID should be used of the author for the 
     141 * test. If the $author is an ID and matches the author page user ID, then 
     142 * 'true' will be returned. 
     143 * 
     144 * If matching against strings, then the test will be matched against both the 
     145 * nickname and user nicename and will return true on success. 
     146 * 
     147 * @since 1.5.0 
     148 * @uses $wp_query 
     149 * 
     150 * @param string|int $author Optional. Is current page this author. 
     151 * @return bool True if page is author or $author (if set). 
     152 */ 
    57153function is_author ($author = '') { 
    58154    global $wp_query; 
     
    78174} 
    79175 
     176/** 
     177 * Whether current page query contains a category name or given category name. 
     178 * 
     179 * The category list can contain category IDs, names, or category slugs. If any 
     180 * of them are part of the query, then it will return true. 
     181 * 
     182 * @since 1.5.0 
     183 * @uses $wp_query 
     184 * 
     185 * @param string|array $category Optional.  
     186 * @return bool 
     187 */ 
    80188function is_category ($category = '') { 
    81189    global $wp_query; 
     
    101209} 
    102210 
     211/** 
     212 * Whether the current page query has the given tag slug or contains tag. 
     213 * 
     214 * @since 2.3.0 
     215 * @uses $wp_query 
     216 * 
     217 * @param string|array $slug Optional. Single tag or list of tags to check for. 
     218 * @return bool 
     219 */ 
    103220function is_tag( $slug = '' ) { 
    104221    global $wp_query; 
     
    120237} 
    121238 
     239/** 
     240 * Whether the current page query has the given taxonomy slug or contains taxonomy. 
     241 * 
     242 * @since 2.5.0 
     243 * @uses $wp_query 
     244 * 
     245 * @param string|array $slug Optional. Slug or slugs to check in current query. 
     246 * @return bool 
     247 */ 
    122248function is_tax( $slug = '' ) { 
    123249    global $wp_query; 
     
    139265} 
    140266 
     267/** 
     268 * Whether the current URL is within the comments popup window. 
     269 * 
     270 * @since 1.5.0 
     271 * @uses $wp_query 
     272 * 
     273 * @return bool 
     274 */ 
    141275function is_comments_popup () { 
    142276    global $wp_query; 
     
    145279} 
    146280 
     281/** 
     282 * Whether current URL is based on a date. 
     283 * 
     284 * @since 1.5.0 
     285 * @uses $wp_query 
     286 * 
     287 * @return bool 
     288 */ 
    147289function is_date () { 
    148290    global $wp_query; 
     
    151293} 
    152294 
     295/** 
     296 * Whether current blog URL contains a day. 
     297 * 
     298 * @since 1.5.0 
     299 * @uses $wp_query 
     300 * 
     301 * @return bool 
     302 */ 
    153303function is_day () { 
    154304    global $wp_query; 
     
    157307} 
    158308 
     309/** 
     310 * Whether current page query is feed URL. 
     311 * 
     312 * @since 1.5.0 
     313 * @uses $wp_query 
     314 * 
     315 * @return bool 
     316 */ 
    159317function is_feed () { 
    160318    global $wp_query; 
     
    164322 
    165323/** 
    166  * is_front_page() - Is it the front of the site, whether blog view or a WP Page? 
    167  * 
    168  * @since 2.5 
    169  * @uses is_home 
    170  * @uses get_option 
    171  * 
    172  * @return bool True if front of site 
     324 * Whether current page query is the front of the site. 
     325 * 
     326 * @since 2.5.0 
     327 * @uses is_home() 
     328 * @uses get_option() 
     329 * 
     330 * @return bool True, if front of site. 
    173331 */ 
    174332function is_front_page () { 
     
    183341 
    184342/** 
    185  * is_home() - Is it the blog view homepage? 
    186  * 
    187  * @since 2.1 
    188  * @global object $wp_query 
    189  * 
    190  * @return bool True if blog view homepage 
     343 * Whether current page view is the blog homepage. 
     344 * 
     345 * @since 1.5.0 
     346 * @uses $wp_query 
     347 * 
     348 * @return bool True if blog view homepage. 
    191349 */ 
    192350function is_home () { 
     
    196354} 
    197355 
     356/** 
     357 * Whether current page query contains a month. 
     358 * 
     359 * @since 1.5.0 
     360 * @uses $wp_query 
     361 * 
     362 * @return bool 
     363 */ 
    198364function is_month () { 
    199365    global $wp_query; 
     
    202368} 
    203369 
     370/** 
     371 * Whether query is page or contains given page(s). 
     372 * 
     373 * Calls the function without any parameters will only test whether the current 
     374 * query is of the page type. Either a list or a single item can be tested 
     375 * against for whether the query is a page and also is the value or one of the 
     376 * values in the page parameter. 
     377 * 
     378 * The parameter can contain the page ID, page title, or page name. The 
     379 * parameter can also be an array of those three values. 
     380 * 
     381 * @since 1.5.0 
     382 * @uses $wp_query 
     383 * 
     384 * @param mixed $page Either page or list of pages to test against. 
     385 * @return bool 
     386 */ 
    204387function is_page ($page = '') { 
    205388    global $wp_query; 
     
    225408} 
    226409 
     410/** 
     411 * Whether query contains multiple pages for the results. 
     412 * 
     413 * @since 1.5.0 
     414 * @uses $wp_query 
     415 * 
     416 * @return bool 
     417 */ 
    227418function is_paged () { 
    228419    global $wp_query; 
     
    231422} 
    232423 
     424/** 
     425 * Whether the current page was created by a plugin. 
     426 * 
     427 * The plugin can set this by using the global $plugin_page and setting it to 
     428 * true. 
     429 * 
     430 * @since 1.5.0 
     431 * @global bool $plugin_page Used by plugins to tell the query that current is a plugin page. 
     432 * 
     433 * @return bool 
     434 */ 
    233435function is_plugin_page() { 
    234436    global $plugin_page; 
     
    240442} 
    241443 
     444/** 
     445 * Whether the current query is preview of post or page. 
     446 * 
     447 * @since 2.0.0 
     448 * @uses $wp_query 
     449 * 
     450 * @return bool 
     451 */ 
    242452function is_preview() { 
    243453    global $wp_query; 
     
    246456} 
    247457 
     458/** 
     459 * Whether the current query post is robots. 
     460 * 
     461 * @since 2.1.0 
     462 * @uses $wp_query 
     463 * 
     464 * @return bool 
     465 */ 
    248466function is_robots() { 
    249467    global $wp_query; 
     
    252470} 
    253471 
     472/** 
     473 * Whether current query is the result of a user search. 
     474 * 
     475 * @since 1.5.0 
     476 * @uses $wp_query 
     477 * 
     478 * @return bool 
     479 */ 
    254480function is_search () { 
    255481    global $wp_query; 
     
    258484} 
    259485 
     486/** 
     487 * Whether the current page query is single page. 
     488 * 
     489 * The parameter can contain the post ID, post title, or post name. The 
     490 * parameter can also be an array of those three values. 
     491 * 
     492 * This applies to other post types, attachments, pages, posts. Just means that 
     493 * the current query has only a single object. 
     494 * 
     495 * @since 1.5.0 
     496 * @uses $wp_query 
     497 * 
     498 * @param mixed $post Either post or list of posts to test against. 
     499 * @return bool 
     500 */ 
    260501function is_single ($post = '') { 
    261502    global $wp_query; 
     
    281522} 
    282523 
     524/** 
     525 * Whether is single post, is a page, or is an attachment. 
     526 * 
     527 * @since 1.5.0 
     528 * @uses $wp_query 
     529 * 
     530 * @return bool 
     531 */ 
    283532function is_singular() { 
    284533    global $wp_query; 
     
    287536} 
    288537 
     538/** 
     539 * Whether the query contains a time. 
     540 * 
     541 * @since 1.5.0 
     542 * @uses $wp_query 
     543 * 
     544 * @return bool 
     545 */ 
    289546function is_time () { 
    290547    global $wp_query; 
     
    293550} 
    294551 
     552/** 
     553 * Whether the query is a trackback. 
     554 * 
     555 * @since 1.5.0 
     556 * @uses $wp_query 
     557 * 
     558 * @return bool 
     559 */ 
    295560function is_trackback () { 
    296561    global $wp_query; 
     
    299564} 
    300565 
     566/** 
     567 * Whether the query contains a year. 
     568 * 
     569 * @since 1.5.0 
     570 * @uses $wp_query 
     571 * 
     572 * @return bool 
     573 */ 
    301574function is_year () { 
    302575    global $wp_query; 
     
    305578} 
    306579 
     580/** 
     581 * Whether current page query is a 404 and no results for WordPress query. 
     582 * 
     583 * @since 1.5.0 
     584 * @uses $wp_query 
     585 * 
     586 * @return bool True, if nothing is found matching WordPress Query. 
     587 */ 
    307588function is_404 () { 
    308589    global $wp_query; 
     
    315596 */ 
    316597 
     598/** 
     599 * Whether current WordPress query has results to loop over. 
     600 * 
     601 * @see WP_Query::have_posts() 
     602 * @since 1.5.0 
     603 * @uses $wp_query 
     604 * 
     605 * @return bool 
     606 */ 
    317607function have_posts() { 
    318608    global $wp_query; 
     
    321611} 
    322612 
     613/** 
     614 * Whether the caller is in the Loop. 
     615 * 
     616 * @since 2.0.0 
     617 * @uses $wp_query 
     618 * 
     619 * @return bool True if caller is within loop, false if loop hasn't started or ended. 
     620 */ 
    323621function in_the_loop() { 
    324622    global $wp_query; 
     
    327625} 
    328626 
     627/** 
     628 * Rewind the loop posts. 
     629 * 
     630 * @see WP_Query::rewind_posts() 
     631 * @since 1.5.0 
     632 * @uses $wp_query 
     633 * 
     634 * @return null 
     635 */ 
    329636function rewind_posts() { 
    330637    global $wp_query; 
     
    333640} 
    334641 
     642/** 
     643 * Iterate the post index in the loop. 
     644 * 
     645 * @see WP_Query::the_post() 
     646 * @since 1.5.0 
     647 * @uses $wp_query 
     648 */ 
    335649function the_post() { 
    336650    global $wp_query; 
     
    343657 */ 
    344658 
     659/** 
     660 * Whether there are comments to loop over. 
     661 * 
     662 * @see WP_Query::have_comments() 
     663 * @since 2.2.0 
     664 * @uses $wp_query 
     665 * 
     666 * @return bool 
     667 */ 
    345668function have_comments() { 
    346669    global $wp_query; 
     
    348671} 
    349672 
     673/** 
     674 * Iterate comment index in the comment loop. 
     675 * 
     676 * @see WP_Query::the_comment() 
     677 * @since 2.2.0 
     678 * @uses $wp_query 
     679 * 
     680 * @return object 
     681 */ 
    350682function the_comment() { 
    351683    global $wp_query; 
     
    357689 */ 
    358690 
     691/** 
     692 * The WordPress Query class. 
     693 * 
     694 * @link http://codex.wordpress.org/Function_Reference/WP_Query Codex page. 
     695 * 
     696 * @since 1.5.0 
     697 */ 
    359698class WP_Query { 
     699 
     700    /** 
     701     * Query string 
     702     * 
     703     * @since 1.5.0 
     704     * @access public 
     705     * @var string 
     706     */ 
    360707    var $query; 
     708 
     709    /** 
     710     * Query search variables set by the user. 
     711     * 
     712     * @since 1.5.0 
     713     * @access public 
     714     * @var array 
     715     */ 
    361716    var $query_vars = array(); 
     717 
     718    /** 
     719     * Holds the data for a single object that is queried. 
     720     * 
     721     * Holds the contents of a post, page, category, attachment. 
     722     * 
     723     * @since 1.5.0 
     724     * @access public 
     725     * @var object|array 
     726     */ 
    362727    var $queried_object; 
     728 
     729    /** 
     730     * The ID of the queried object. 
     731     * 
     732     * @since 1.5.0 
     733     * @access public 
     734     * @var int 
     735     */ 
    363736    var $queried_object_id; 
     737 
     738    /** 
     739     * Get post database query. 
     740     * 
     741     * @since 2.0.1 
     742     * @access public 
     743     * @var string 
     744     */ 
    364745    var $request; 
    365746 
     747    /** 
     748     * List of posts. 
     749     * 
     750     * @since 1.5.0 
     751     * @access public 
     752     * @var array 
     753     */ 
    366754    var $posts; 
     755 
     756    /** 
     757     * The amount of posts for the current query. 
     758     * 
     759     * @since 1.5.0 
     760     * @access public 
     761     * @var int 
     762     */ 
    367763    var $post_count = 0; 
     764 
     765    /** 
     766     * Index of the current item in the loop. 
     767     * 
     768     * @since 1.5.0 
     769     * @access public 
     770     * @var int 
     771     */ 
    368772    var $current_post = -1; 
     773 
     774    /** 
     775     * Whether the loop has started and the caller is in the loop. 
     776     * 
     777     * @since 2.0.0 
     778     * @access public 
     779     * @var bool 
     780     */ 
    369781    var $in_the_loop = false; 
     782 
     783    /** 
     784     * The current post ID. 
     785     * 
     786     * @since 1.5.0 
     787     * @access public 
     788     * @var int 
     789     */ 
    370790    var $post; 
    371791 
     792    /** 
     793     * The list of comments for current post. 
     794     * 
     795     * @since 2.2.0 
     796     * @access public 
     797     * @var array 
     798     */ 
    372799    var $comments; 
     800 
     801    /** 
     802     * The amount of comments for the posts. 
     803     * 
     804     * @since 2.2.0 
     805     * @access public 
     806     * @var int 
     807     */ 
    373808    var $comment_count = 0; 
     809 
     810    /** 
     811     * The index of the comment in the comment loop. 
     812     * 
     813     * @since 2.2.0 
     814     * @access public 
     815     * @var int 
     816     */ 
    374817    var $current_comment = -1; 
     818 
     819    /** 
     820     * Current comment ID. 
     821     * 
     822     * @since 2.2.0 
     823     * @access public 
     824     * @var int 
     825     */ 
    375826    var $comment; 
    376827 
     828    /** 
     829     * Amount of posts if limit clause was not used. 
     830     * 
     831     * @since 2.1.0 
     832     * @access public 
     833     * @var int 
     834     */ 
    377835    var $found_posts = 0; 
     836 
     837    /** 
     838     * The amount of pages. 
     839     * 
     840     * @since 2.1.0 
     841     * @access public 
     842     * @var int 
     843     */ 
    378844    var $max_num_pages = 0; 
    379845 
     846    /** 
     847     * Set if query is single post. 
     848     * 
     849     * @since 1.5.0 
     850     * @access public 
     851     * @var bool 
     852     */ 
    380853    var $is_single = false; 
     854 
     855    /** 
     856     * Set if query is preview of blog. 
     857     * 
     858     * @since 2.0.0 
     859     * @access public 
     860     * @var bool 
     861     */ 
    381862    var $is_preview = false; 
     863 
     864    /** 
     865     * Set if query returns a page. 
     866     * 
     867     * @since 1.5.0 
     868     * @access public 
     869     * @var bool 
     870     */ 
    382871    var $is_page = false; 
     872 
     873    /** 
     874     * Set if query is an archive list. 
     875     * 
     876     * @since 1.5.0 
     877     * @access public 
     878     * @var bool 
     879     */ 
    383880    var $is_archive = false; 
     881 
     882    /** 
     883     * Set if query is part of a date. 
     884     * 
     885     * @since 1.5.0 
     886     * @access public 
     887     * @var bool 
     888     */ 
    384889    var $is_date = false; 
     890 
     891    /** 
     892     * Set if query contains a year. 
     893     * 
     894     * @since 1.5.0 
     895     * @access public 
     896     * @var bool 
     897     */ 
    385898    var $is_year = false; 
     899 
     900    /** 
     901     * Set if query contains a month. 
     902     * 
     903     * @since 1.5.0 
     904     * @access public 
     905     * @var bool 
     906     */ 
    386907    var $is_month = false; 
     908 
     909    /** 
     910     * Set if query contains a day. 
     911     * 
     912     * @since 1.5.0 
     913     * @access public 
     914     * @var bool 
     915     */ 
    387916    var $is_day = false; 
     917 
     918    /** 
     919     * Set if query contains time. 
     920     * 
     921     * @since 1.5.0 
     922     * @access public 
     923     * @var bool 
     924     */ 
    388925    var $is_time = false; 
     926 
     927    /** 
     928     * Set if query contains an author. 
     929     * 
     930     * @since 1.5.0 
     931     * @access public 
     932     * @var bool 
     933     */ 
    389934    var $is_author = false; 
     935 
     936    /** 
     937     * Set if query contains category. 
     938     * 
     939     * @since 1.5.0 
     940     * @access public 
     941     * @var bool 
     942     */ 
    390943    var $is_category = false; 
     944 
     945    /** 
     946     * Set if query contains tag. 
     947     * 
     948     * @since 2.3.0 
     949     * @access public 
     950     * @var bool 
     951     */ 
    391952    var $is_tag = false; 
     953 
     954    /** 
     955     * Set if query contains taxonomy. 
     956     * 
     957     * @since 2.5.0 
     958     * @access public 
     959     * @var bool 
     960     */ 
    392961    var $is_tax = false; 
     962 
     963    /** 
     964     * Set if query was part of a search result. 
     965     * 
     966     * @since 1.5.0 
     967     * @access public 
     968     * @var bool 
     969     */ 
    393970    var $is_search = false; 
     971 
     972    /** 
     973     * Set if query is feed display. 
     974     * 
     975     * @since 1.5.0 
     976     * @access public 
     977     * @var bool 
     978     */ 
    394979    var $is_feed = false; 
     980 
     981    /** 
     982     * Set if query is comment feed display. 
     983     * 
     984     * @since 2.2.0 
     985     * @access public 
     986     * @var bool 
     987     */ 
    395988    var $is_comment_feed = false; 
     989 
     990    /** 
     991     * Set if query is trackback. 
     992     * 
     993     * @since 1.5.0 
     994     * @access public 
     995     * @var bool 
     996     */ 
    396997    var $is_trackback = false; 
     998 
     999    /** 
     1000     * Set if query is blog homepage. 
     1001     * 
     1002     * @since 1.5.0 
     1003     * @access public 
     1004     * @var bool 
     1005     */ 
    3971006    var $is_home = false; 
     1007 
     1008    /** 
     1009     * Set if query couldn't found anything. 
     1010     * 
     1011     * @since 1.5.0 
     1012     * @access public 
     1013     * @var bool 
     1014     */ 
    3981015    var $is_404 = false; 
     1016 
     1017    /** 
     1018     * Set if query is within comments popup window. 
     1019     * 
     1020     * @since 1.5.0 
     1021     * @access public 
     1022     * @var bool 
     1023     */ 
    3991024    var $is_comments_popup = false; 
     1025 
     1026    /** 
     1027     * Set if query is part of administration page. 
     1028     * 
     1029     * @since 1.5.0 
     1030     * @access public 
     1031     * @var bool 
     1032     */ 
    4001033    var $is_admin = false; 
     1034 
     1035    /** 
     1036     * Set if query is an attachment. 
     1037     * 
     1038     * @since 2.0.0 
     1039     * @access public 
     1040     * @var bool 
     1041     */ 
    4011042    var $is_attachment = false; 
     1043 
     1044    /** 
     1045     * Set if is single, is a page, or is an attachment. 
     1046     * 
     1047     * @since 2.1.0 
     1048     * @access public 
     1049     * @var bool 
     1050     */ 
    4021051    var $is_singular = false; 
     1052 
     1053    /** 
     1054     * Set if query is for robots. 
     1055     * 
     1056     * @since 2.1.0 
     1057     * @access public 
     1058     * @var bool 
     1059     */ 
    4031060    var $is_robots = false; 
     1061 
     1062    /** 
     1063     * Set if query contains posts. 
     1064     * 
     1065     * Basically, the homepage if the option isn't set for the static homepage. 
     1066     * 
     1067     * @since 2.1.0 
     1068     * @access public 
     1069     * @var bool 
     1070     */ 
    4041071    var $is_posts_page = false; 
    4051072 
     1073    /** 
     1074     * Resets query flags to false. 
     1075     * 
     1076     * The query flags are what page info WordPress was able to figure out. 
     1077     * 
     1078     * @since 2.0.0 
     1079     * @access private 
     1080     */ 
    4061081    function init_query_flags() { 
    4071082        $this->is_single = false; 
     
    4311106    } 
    4321107 
     1108    /** 
     1109     * Initiates object properties and sets default values. 
     1110     * 
     1111     * @since 1.5.0 
     1112     * @access public 
     1113     */ 
    4331114    function init () { 
    4341115        unset($this->posts); 
     
    4441125    } 
    4451126 
    446     // Reparse the query vars. 
     1127    /** 
     1128     * Reparse the query vars. 
     1129     * 
     1130     * @since 1.5.0 
     1131     * @access public 
     1132     */ 
    4471133    function parse_query_vars() { 
    4481134        $this->parse_query(''); 
    4491135    } 
    4501136 
     1137    /** 
     1138     * Fills in the query variables, which do not exist within the parameter. 
     1139     * 
     1140     * @since 2.1.0 
     1141     * @access public 
     1142     * 
     1143     * @param array $array Defined query variables. 
     1144     * @return array Complete query variables with undefined ones filled in empty. 
     1145     */ 
    4511146    function fill_query_vars($array) { 
    4521147        $keys = array( 
     
    5001195    } 
    5011196 
    502     // Parse a query string and set query type booleans. 
     1197    /** 
     1198     * Parse a query string and set query type booleans. 
     1199     * 
     1200     * @since 1.5.0 
     1201     * @access public 
     1202     * 
     1203     * @param string|array $query 
     1204     */ 
    5031205    function parse_query ($query) { 
    5041206        if ( !empty($query) || !isset($this->query) ) { 
     
    7081410            } 
    7091411 
    710             if ( ($this->is_date || $this->is_author || $this->is_category || $this->is_tag || $this->is_tax ) ) 
     1412            if ( ($this->is_date || $this->is_author || $this->is_category || $this->is_tag ) ) 
    7111413                $this->is_archive = true; 
    7121414        } 
     
    7921494    } 
    7931495 
     1496    /** 
     1497     * Sets the 404 property and saves whether query is feed. 
     1498     * 
     1499     * @since 2.0.0 
     1500     * @access public 
     1501     */ 
    7941502    function set_404() { 
    7951503        $is_feed = $this->is_feed; 
     
    8011509    } 
    8021510 
     1511    /** 
     1512     * Retrieve query variable. 
     1513     * 
     1514     * @since 1.5.0 
     1515     * @access public 
     1516     * 
     1517     * @param string $query_var Query variable key. 
     1518     * @return mixed 
     1519     */ 
    8031520    function get($query_var) { 
    8041521        if (isset($this->query_vars[$query_var])) { 
     
    8091526    } 
    8101527 
     1528    /** 
     1529     * Set query variable. 
     1530     * 
     1531     * @since 1.5.0 
     1532     * @access public 
     1533     * 
     1534     * @param string $query_var Query variable key. 
     1535     * @param mixed $value Query variable value. 
     1536     */ 
    8111537    function set($query_var, $value) { 
    8121538        $this->query_vars[$query_var] = $value; 
    8131539    } 
    8141540 
     1541    /** 
     1542     * Retrieve the posts based on query variables. 
     1543     * 
     1544     * There are a few filters and actions that can be used to modify the post 
     1545     * database query. 
     1546     * 
     1547     * @since 1.5.0 
     1548     * @access public 
     1549     * @uses do_action_ref_array() Calls 'pre_get_posts' hook before retrieving posts. 
     1550     * 
     1551     * @return array List of posts. 
     1552     */ 
    8151553    function &get_posts() { 
    8161554        global $wpdb, $user_ID; 
     
    15502288                $stickies__in = implode(',', array_map( 'absint', $sticky_posts )); 
    15512289                $stickies = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE $wpdb->posts.ID IN ($stickies__in)" ); 
    1552                 // TODO Make sure post is published or viewable by the current user 
     2290                /** @todo Make sure post is published or viewable by the current user */ 
    15532291                foreach ( $stickies as $sticky_post ) { 
    15542292                    if ( 'publish' != $sticky_post->post_status ) 
     
    15732311    } 
    15742312 
     2313    /** 
     2314     * Setup the next post and iterate current post index. 
     2315     * 
     2316     * @since 1.5.0 
     2317     * @access public 
     2318     * 
     2319     * @return object Next post. 
     2320     */ 
    15752321    function next_post() { 
    15762322 
     
    15812327    } 
    15822328 
     2329    /** 
     2330     * Sets up the current post. 
     2331     * 
     2332     * Retrieves the next post, sets up the post, sets the 'in the loop' 
     2333     * property to true. 
     2334     * 
     2335     * @since 1.5.0 
     2336     * @access public 
     2337     * @uses $post 
     2338     * @uses do_action() Calls 'loop_start' if loop has just started 
     2339     */ 
    15832340    function the_post() { 
    15842341        global $post; 
     
    15912348    } 
    15922349 
     2350    /** 
     2351     * Whether there are more posts available in the loop. 
     2352     * 
     2353     * Calls action 'loop_end', when the loop is complete. 
     2354     * 
     2355     * @since 1.5.0 
     2356     * @access public 
     2357     * @uses do_action() Calls 'loop_start' if loop has just started 
     2358     * 
     2359     * @return bool True if posts are available, false if end of loop. 
     2360     */ 
    15932361    function have_posts() { 
    15942362        if ($this->current_post + 1 < $this->post_count) { 
     
    16042372    } 
    16052373 
     2374    /** 
     2375     * Rewind the posts and reset post index. 
     2376     * 
     2377     * @since 1.5.0 
     2378     * @access public 
     2379     */ 
    16062380    function rewind_posts() { 
    16072381        $this->current_post = -1; 
     
    16112385    } 
    16122386 
     2387    /** 
     2388     * Iterate current comment index and return comment object. 
     2389     * 
     2390     * @since 2.2.0 
     2391     * @access public 
     2392     * 
     2393     * @return object Comment object. 
     2394     */ 
    16132395    function next_comment() { 
    16142396        $this->current_comment++; 
     
    16182400    } 
    16192401 
     2402    /** 
     2403     * Sets up the current comment. 
     2404     * 
     2405     * @since 2.2.0 
     2406     * @access public 
     2407     * @global object $comment Current comment. 
     2408     * @uses do_action() Calls 'comment_loop_start' hook when first comment is processed. 
     2409     */ 
    16202410    function the_comment() { 
    16212411        global $comment; 
     
    16282418    } 
    16292419 
     2420    /** 
     2421     * Whether there are more comments available. 
     2422     * 
     2423     * Automatically rewinds comments when finished. 
     2424     * 
     2425     * @since 2.2.0 
     2426     * @access public 
     2427     * 
     2428     * @return bool True, if more comments. False, if no more posts. 
     2429     */ 
    16302430    function have_comments() { 
    16312431        if ($this->current_comment + 1 < $this->comment_count) { 
     
    16382438    } 
    16392439 
     2440    /** 
     2441     * Rewind the comments, resets the comment index and comment to first. 
     2442     * 
     2443     * @since 2.2.0 
     2444     * @access public 
     2445     */ 
    16402446    function rewind_comments() { 
    16412447        $this->current_comment = -1; 
     
    16452451    } 
    16462452 
     2453    /** 
     2454     * Sets up the WordPress query by parsing query string. 
     2455     * 
     2456     * @since 1.5.0 
     2457     * @access public 
     2458     * 
     2459     * @param string $query URL query string. 
     2460     * @return array List of posts. 
     2461     */ 
    16472462    function &query($query) { 
    16482463        $this->parse_query($query); 
     
    16502465    } 
    16512466 
     2467    /** 
     2468     * Retrieve queried object. 
     2469     * 
     2470     * If queried object is not set, then the queried object will be set from 
     2471     * the category, tag, taxonomy, posts page, single post, page, or author 
     2472     * query variable. After it is set up, it will be returned. 
     2473     * 
     2474     * @since 1.5.0 
     2475     * @access public 
     2476     * 
     2477     * @return object 
     2478     */ 
    16522479    function get_queried_object() { 
    16532480        if (isset($this->queried_object)) { 
     
    16982525    } 
    16992526 
     2527    /** 
     2528     * Retrieve ID of the current queried object. 
     2529     * 
     2530     * @since 1.5.0 
     2531     * @access public 
     2532     * 
     2533     * @return int 
     2534     */ 
    17002535    function get_queried_object_id() { 
    17012536        $this->get_queried_object(); 
     
    17082543    } 
    17092544 
     2545    /** 
     2546     * PHP4 type constructor. 
     2547     * 
     2548     * Sets up the WordPress query, if parameter is not empty. 
     2549     * 
     2550     * @since 1.5.0 
     2551     * @access public 
     2552     * 
     2553     * @param string $query URL query string. 
     2554     * @return WP_Query 
     2555     */ 
    17102556    function WP_Query ($query = '') { 
    17112557        if (! empty($query)) { 
     
    17152561} 
    17162562 
    1717  
    1718 // Redirect old slugs 
     2563/** 
     2564 * Redirect old slugs to the correct permalink. 
     2565 * 
     2566 * Attempts to find the current slug from the past slugs. 
     2567 * 
     2568 * @since 2.1.0 
     2569 * @uses $wp_query 
     2570 * @uses $wpdb 
     2571 * 
     2572 * @return null If no link is found, null is returned. 
     2573 */ 
    17192574function wp_old_slug_redirect () { 
    17202575    global $wp_query; 
     
    17482603} 
    17492604 
    1750  
    1751 // 
    1752 // Private helper functions 
    1753 // 
    1754  
    1755 // Setup global post data. 
     2605/** 
     2606 * Setup global post data. 
     2607 * 
     2608 * @since 1.5.0 
     2609 * 
     2610 * @param object $post Post data. 
     2611 * @return bool True when finished. 
     2612 */ 
    17562613function setup_postdata($post) { 
    17572614    global $id, $authordata, $day, $currentmonth, $page, $pages, $multipage, $more, $numpages; 
Note: See TracChangeset for help on using the changeset viewer.