Make WordPress Core

Changeset 1728


Ignore:
Timestamp:
10/02/2004 07:24:40 PM (22 years ago)
Author:
rboren
Message:

Extend is_single(), is_page(), is_category(), and is_author() to accept an optional argument which designates a particular id, name, or nicename.

Location:
trunk/wp-includes
Files:
2 edited

Legend:

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

    r1714 r1728  
    44        var $query;
    55        var $query_vars;
     6        var $queried_object;
     7        var $queried_object_id;
    68
    79        var $posts;
     
    4446                unset($this->query);
    4547                unset($this->query_vars);
     48                unset($this->queried_object);
     49                unset($this->queried_object_id);
    4650                $this->post_count = 0;
    4751                $this->current_post = -1;
     
    523527                $this->post_count = count($this->posts);
    524528                if ($this->post_count > 0) {
    525                         $this->post = $posts[0];
     529                        $this->post = $this->posts[0];
    526530                }
    527531
     
    552556                $this->parse_query($query);
    553557                return $this->get_posts();
     558        }
     559
     560        function get_queried_object() {
     561                if (isset($this->queried_object)) {
     562                        return $this->queried_object;
     563                }
     564
     565                $this->queried_object = NULL;
     566                $this->queried_object_id = 0;
     567
     568                if ($this->is_category) {
     569                        global $cache_categories;
     570                        if (isset($cache_categories[$this->get('cat')])) {
     571                                $this->queried_object = $cache_categories[$this->get('cat')];
     572                                $this->queried_object_id = $this->get('cat');
     573                        }
     574                } else if ($this->is_single) {
     575                        $this->queried_object = $this->post;
     576                        $this->queried_object_id = $this->post->ID;
     577                } else if ($this->is_page) {
     578                        $this->queried_object = $this->post;
     579                        $this->queried_object_id = $this->post->ID;
     580                } else if ($this->is_author) {
     581                        global $cache_userdata;
     582                        if (isset($cache_userdata[$this->get('author')])) {
     583                                $this->queried_object = $cache_userdata[$this->get('author')];
     584                                $this->queried_object_id = $this->get('author');
     585                        }
     586                }
     587
     588                return $this->queried_object;
     589        }
     590
     591        function get_queried_object_id() {
     592                $this->get_queried_object();
     593
     594                if (isset($this->queried_object_id)) {
     595                        return $this->queried_object_id;
     596                }
     597
     598                return 0;
    554599        }
    555600
  • trunk/wp-includes/functions.php

    r1727 r1728  
    16051605}
    16061606
    1607 function is_single () {
    1608     global $wp_query;
    1609 
    1610     return $wp_query->is_single;
    1611 }
    1612 
    1613 function is_page () {
    1614     global $wp_query;
    1615 
    1616     return $wp_query->is_page;
     1607function is_single ($post = '') {
     1608        global $wp_query;
     1609
     1610        if (! $wp_query->is_single) {
     1611                return false;
     1612        }
     1613
     1614        if (empty($post)) {
     1615                return true;
     1616        }
     1617
     1618        $post_obj = $wp_query->get_queried_object();
     1619
     1620        if ($post == $post_obj->ID) {
     1621                return true;
     1622        } else if ($post == $post_obj->post_title) {
     1623                return true;
     1624        } else if ($post == $post_obj->post_name) {
     1625                return true;
     1626        }
     1627
     1628        return false;
     1629}
     1630
     1631function is_page ($page = '') {
     1632        global $wp_query;
     1633
     1634        if (! $wp_query->is_page) {
     1635                return false;
     1636        }
     1637
     1638        if (empty($page)) {
     1639                return true;
     1640        }
     1641
     1642        $page_obj = $wp_query->get_queried_object();
     1643               
     1644        if ($page == $page_obj->ID) {
     1645                return true;
     1646        } else if ($page == $page_obj->post_title) {
     1647                return true;
     1648        } else if ($page == $page_obj->post_name) {
     1649                return true;
     1650        }
     1651
     1652        return false;
    16171653}
    16181654
     
    16531689}
    16541690
    1655 function is_author () {
    1656     global $wp_query;
    1657 
    1658     return $wp_query->is_author;
    1659 }
    1660 
    1661 function is_category () {
    1662     global $wp_query;
    1663 
    1664     return $wp_query->is_category;
     1691function is_author ($author = '') {
     1692        global $wp_query;
     1693
     1694        if (! $wp_query->is_author) {
     1695                return false;
     1696        }
     1697
     1698        if (empty($author)) {
     1699                return true;
     1700        }
     1701
     1702        $author_obj = $wp_query->get_queried_object();
     1703               
     1704        if ($author == $author_obj->ID) {
     1705                return true;
     1706        } else if ($author == $author_obj->user_nickname) {
     1707                return true;
     1708        } else if ($author == $author_obj->user_nicename) {
     1709                return true;
     1710        }
     1711
     1712        return false;
     1713}
     1714
     1715function is_category ($category = '') {
     1716        global $wp_query;
     1717
     1718        if (! $wp_query->is_category) {
     1719                return false;
     1720        }
     1721
     1722        if (empty($category)) {
     1723                return true;
     1724        }
     1725
     1726        $cat_obj = $wp_query->get_queried_object();
     1727               
     1728        if ($category == $cat_obj->cat_ID) {
     1729                return true;
     1730        } else if ($category == $cat_obj->cat_name) {
     1731                return true;
     1732        } else if ($category == $cat_obj->category_nicename) {
     1733                return true;
     1734        }
     1735
     1736        return false;
    16651737}
    16661738
Note: See TracChangeset for help on using the changeset viewer.