WordPress.org

Make WordPress Core

Ticket #12533: 12533.4.diff

File 12533.4.diff, 5.2 KB (added by scribu, 8 years ago)
  • wp-includes/query.php

     
    9494 *
    9595 * @return bool True if page is archive.
    9696 */
    97 function is_archive () {
     97function is_archive() {
    9898        global $wp_query;
    9999
    100100        return $wp_query->is_archive;
     
    108108 *
    109109 * @return bool True if page is attachment.
    110110 */
    111 function is_attachment () {
     111function is_attachment() {
    112112        global $wp_query;
    113113
    114114        return $wp_query->is_attachment;
     
    268268 *
    269269 * @return bool
    270270 */
    271 function is_comments_popup () {
     271function is_comments_popup() {
    272272        global $wp_query;
    273273
    274274        return $wp_query->is_comments_popup;
     
    282282 *
    283283 * @return bool
    284284 */
    285 function is_date () {
     285function is_date() {
    286286        global $wp_query;
    287287
    288288        return $wp_query->is_date;
     
    296296 *
    297297 * @return bool
    298298 */
    299 function is_day () {
     299function is_day() {
    300300        global $wp_query;
    301301
    302302        return $wp_query->is_day;
     
    310310 *
    311311 * @return bool
    312312 */
    313 function is_feed () {
     313function is_feed() {
    314314        global $wp_query;
    315315
    316316        return $wp_query->is_feed;
     
    324324 *
    325325 * @return bool
    326326 */
    327 function is_comment_feed () {
     327function is_comment_feed() {
    328328        global $wp_query;
    329329
    330330        return $wp_query->is_comment_feed;
     
    339339 *
    340340 * @return bool True, if front of site.
    341341 */
    342 function is_front_page () {
     342function is_front_page() {
    343343        // most likely case
    344344        if ( 'posts' == get_option('show_on_front') && is_home() )
    345345                return true;
     
    361361 *
    362362 * @return bool True if blog view homepage.
    363363 */
    364 function is_home () {
     364function is_home() {
    365365        global $wp_query;
    366366
    367367        return $wp_query->is_home;
     
    375375 *
    376376 * @return bool
    377377 */
    378 function is_month () {
     378function is_month() {
    379379        global $wp_query;
    380380
    381381        return $wp_query->is_month;
     
    429429 *
    430430 * @return bool
    431431 */
    432 function is_paged () {
     432function is_paged() {
    433433        global $wp_query;
    434434
    435435        return $wp_query->is_paged;
     
    491491 *
    492492 * @return bool
    493493 */
    494 function is_search () {
     494function is_search() {
    495495        global $wp_query;
    496496
    497497        return $wp_query->is_search;
     
    512512 * @param mixed $post Either post or list of posts to test against.
    513513 * @return bool
    514514 */
    515 function is_single ($post = '') {
     515function is_single($post = '') {
    516516        global $wp_query;
    517517
    518518        if ( !$wp_query->is_single )
     
    557557 *
    558558 * @return bool
    559559 */
    560 function is_time () {
     560function is_time() {
    561561        global $wp_query;
    562562
    563563        return $wp_query->is_time;
     
    571571 *
    572572 * @return bool
    573573 */
    574 function is_trackback () {
     574function is_trackback() {
    575575        global $wp_query;
    576576
    577577        return $wp_query->is_trackback;
     
    585585 *
    586586 * @return bool
    587587 */
    588 function is_year () {
     588function is_year() {
    589589        global $wp_query;
    590590
    591591        return $wp_query->is_year;
     
    599599 *
    600600 * @return bool True, if nothing is found matching WordPress Query.
    601601 */
    602 function is_404 () {
     602function is_404() {
    603603        global $wp_query;
    604604
    605605        return $wp_query->is_404;
     
    11341134         * @since 1.5.0
    11351135         * @access public
    11361136         */
    1137         function init () {
     1137        function init() {
    11381138                unset($this->posts);
    11391139                unset($this->query);
    11401140                $this->query_vars = array();
     
    12271227         *
    12281228         * @param string|array $query
    12291229         */
    1230         function parse_query ($query) {
     1230        function parse_query($query) {
    12311231                if ( !empty($query) || !isset($this->query) ) {
    12321232                        $this->init();
    12331233                        if ( is_array($query) )
     
    19961996                        if ( '' != $q['taxonomy'] ) {
    19971997                                $taxonomy = $q['taxonomy'];
    19981998                                $tt[$taxonomy] = $q['term'];
    1999                                 $terms = get_terms($q['taxonomy'], array('slug'=>$q['term']));
    20001999                        } else {
    20012000                                foreach ( $GLOBALS['wp_taxonomies'] as $taxonomy => $t ) {
    20022001                                        if ( $t->query_var && '' != $q[$t->query_var] ) {
    2003                                                 $terms = get_terms($taxonomy, array('slug'=>$q[$t->query_var]));
    2004                                                 if ( !is_wp_error($terms) )
    2005                                                         break;
     2002                                                $tt[$taxonomy] = $q[$t->query_var];
     2003                                                break;
    20062004                                        }
    20072005                                }
    20082006                        }
     2007
     2008                        $terms = get_terms($taxonomy, array('slug' => $tt[$taxonomy], 'hide_empty' => !is_taxonomy_hierarchical($taxonomy)));
     2009
    20092010                        if ( is_wp_error($terms) || empty($terms) ) {
    20102011                                $whichcat = " AND 0 ";
    20112012                        } else {
    2012                                 foreach ( $terms as $term )
     2013                                foreach ( $terms as $term ) {
    20132014                                        $term_ids[] = $term->term_id;
     2015                                        if ( is_taxonomy_hierarchical($taxonomy) ) {
     2016                                                $children = get_term_children($term->term_id, $taxonomy);
     2017                                                $term_ids = array_merge($term_ids, $children);
     2018                                        }
     2019                                }
    20142020                                $post_ids = get_objects_in_term($term_ids, $taxonomy);
    2015                                 if ( !is_wp_error($post_ids) && count($post_ids) ) {
     2021                                if ( !is_wp_error($post_ids) && !empty($post_ids) ) {
    20162022                                        $whichcat .= " AND $wpdb->posts.ID IN (" . implode(', ', $post_ids) . ") ";
    20172023                                        $post_type = 'any';
    20182024                                        $q['post_status'] = 'publish';
     
    27342740         * @param string $query URL query string.
    27352741         * @return WP_Query
    27362742         */
    2737         function WP_Query ($query = '') {
     2743        function WP_Query($query = '') {
    27382744                if (! empty($query)) {
    27392745                        $this->query($query);
    27402746                }
     
    27522758 *
    27532759 * @return null If no link is found, null is returned.
    27542760 */
    2755 function wp_old_slug_redirect () {
     2761function wp_old_slug_redirect() {
    27562762        global $wp_query;
    27572763        if ( is_404() && '' != $wp_query->query_vars['name'] ) :
    27582764                global $wpdb;
     
    28272833        return true;
    28282834}
    28292835
    2830 ?>
    2831  No newline at end of file