Make WordPress Core


Ignore:
Timestamp:
07/09/2014 04:03:17 PM (11 years ago)
Author:
johnbillion
Message:

Add support for a full path parameter to is_page() and is_single(). Props Jesper800, engelen, johnbillion. Fixes #16802.

File:
1 edited

Legend:

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

    r29027 r29039  
    43124312     * @since 3.1.0
    43134313     *
    4314      * @param mixed $page Page ID, title, slug, or array of such.
     4314     * @param mixed $page Page ID, title, slug, path, or array of such.
    43154315     * @return bool
    43164316     */
     
    43264326        $page = (array) $page;
    43274327
    4328         if ( in_array( $page_obj->ID, $page ) )
     4328        if ( in_array( $page_obj->ID, $page ) ) {
    43294329            return true;
    4330         elseif ( in_array( $page_obj->post_title, $page ) )
     4330        } elseif ( in_array( $page_obj->post_title, $page ) ) {
    43314331            return true;
    4332         else if ( in_array( $page_obj->post_name, $page ) )
     4332        } else if ( in_array( $page_obj->post_name, $page ) ) {
    43334333            return true;
     4334        } else {
     4335            foreach ( $page as $pagepath ) {
     4336                if ( ! strpos( $pagepath, '/' ) ) {
     4337                    continue;
     4338                }
     4339                $pagepath_obj = get_page_by_path( $pagepath );
     4340
     4341                if ( $pagepath_obj && ( $pagepath_obj->ID == $page_obj->ID ) ) {
     4342                    return true;
     4343                }
     4344            }
     4345        }
    43344346
    43354347        return false;
     
    43934405     * @since 3.1.0
    43944406     *
    4395      * @param mixed $post Post ID, title, slug, or array of such.
     4407     * @param mixed $post Post ID, title, slug, path, or array of such.
    43964408     * @return bool
    43974409     */
     
    44074419        $post = (array) $post;
    44084420
    4409         if ( in_array( $post_obj->ID, $post ) )
     4421        if ( in_array( $post_obj->ID, $post ) ) {
    44104422            return true;
    4411         elseif ( in_array( $post_obj->post_title, $post ) )
     4423        } elseif ( in_array( $post_obj->post_title, $post ) ) {
    44124424            return true;
    4413         elseif ( in_array( $post_obj->post_name, $post ) )
     4425        } elseif ( in_array( $post_obj->post_name, $post ) ) {
    44144426            return true;
    4415 
     4427        } else {
     4428            foreach ( $post as $postpath ) {
     4429                if ( ! strpos( $postpath, '/' ) ) {
     4430                    continue;
     4431                }
     4432                $postpath_obj = get_page_by_path( $postpath, OBJECT, $post_obj->post_type );
     4433
     4434                if ( $postpath_obj && ( $postpath_obj->ID == $post_obj->ID ) ) {
     4435                    return true;
     4436                }
     4437            }
     4438        }
    44164439        return false;
    44174440    }
Note: See TracChangeset for help on using the changeset viewer.