WordPress.org

Make WordPress Core

Ticket #11631: 11631-code-improvements.patch

File 11631-code-improvements.patch, 5.5 KB (added by hakre, 8 years ago)
  • wp-includes/post-template.php

    ### Eclipse Workspace Patch 1.0
    #P wordpress-trunk
     
    9494/**
    9595 * Retrieve post title.
    9696 *
    97  * If the post is protected and the visitor is not an admin, then "Protected"
    98  * will be displayed before the post title. If the post is private, then
    99  * "Private" will be located before the post title.
     97 * Get title of a post. Reflects visibility like public, password protected
     98 * or private.
    10099 *
    101100 * @since 0.71
    102101 *
    103  * @param int $id Optional. Post ID.
    104  * @return string
     102 * @param int $id (optional) id of post
     103 * @return string title
    105104 */
    106105function get_the_title( $id = 0 ) {
    107         $post = &get_post($id);
     106        $title  = '';
     107        $format = '';
     108        $post   = &get_post($id);
     109       
     110        if ( isset($post->ID) )
     111                $id    = $post->ID;
    108112
    109         $title = $post->post_title;
     113        if ( isset($post->post_title) )
     114                $title = $post->post_title;
    110115
    111         if ( !is_admin() ) {
    112                 if ( !empty($post->post_password) ) {
    113                         $protected_title_format = apply_filters('protected_title_format', __('Protected: %s'));
    114                         $title = sprintf($protected_title_format, $title);
    115                 } else if ( isset($post->post_status) && 'private' == $post->post_status ) {
    116                         $private_title_format = apply_filters('private_title_format', __('Private: %s'));
    117                         $title = sprintf($private_title_format, $title);
    118                 }
     116        if ( !is_admin() && !empty($post->post_password)) {
     117                $format = apply_filters('protected_title_format', __('Protected: %s'));
     118        } else if ( !is_admin() && isset($post->post_status) && 'private' == $post->post_status ) {
     119                $format = apply_filters('private_title_format', __('Private: %s'));             
    119120        }
    120         return apply_filters( 'the_title', $title, $post->ID );
     121       
     122        if ($format) $title = sprintf($format, $title);
     123
     124        return apply_filters('the_title', $title, $id);
    121125}
    122126
    123127/**
  • wp-includes/post.php

     
    230230 * $post, must be given as a variable, since it is passed by reference.
    231231 *
    232232 * @since 1.5.1
    233  * @uses $wpdb
    234233 * @link http://codex.wordpress.org/Function_Reference/get_post
    235234 *
    236  * @param int|object $post Post ID or post object.
    237  * @param string $output Optional, default is Object. Either OBJECT, ARRAY_A, or ARRAY_N.
    238  * @param string $filter Optional, default is raw.
    239  * @return mixed Post data
     235 * @param int|object $post Post ID or post object or set to 0 to get current post
     236 * @param string $output (optional) default is OBJECT, can be ARRAY_A or ARRAY_N.
     237 * @param string $filter (optional) default is 'raw'.
     238 * @return object|array Post data based on $output parameter: OBJECT, ARRAY_A or
     239 *                      ARRAY_N. NULL if no post available.
    240240 */
    241241function &get_post(&$post, $output = OBJECT, $filter = 'raw') {
    242         global $wpdb;
    243         $null = null;
     242        $_post = null; // init return value
    244243
    245         if ( empty($post) ) {
    246                 if ( isset($GLOBALS['post']) )
    247                         $_post = & $GLOBALS['post'];
    248                 else
    249                         return $null;
    250         } elseif ( is_object($post) && empty($post->filter) ) {
     244        if ( empty($post) && ! isset($GLOBALS['post']) ) {
     245                return $_post;
     246        } else if ( empty($post) && isset($GLOBALS['post']) ) {
     247                $_post = & $GLOBALS['post'];
     248        } else if ( is_object($post) && empty($post->filter) ) {
    251249                _get_post_ancestors($post);
    252250                $_post = sanitize_post($post, 'raw');
    253251                wp_cache_add($post->ID, $_post, 'posts');
    254252        } else {
    255                 if ( is_object($post) )
    256                         $post = $post->ID;
    257                 $post = (int) $post;
    258                 if ( ! $_post = wp_cache_get($post, 'posts') ) {
    259                         $_post = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE ID = %d LIMIT 1", $post));
    260                         if ( ! $_post )
    261                                 return $null;
    262                         _get_post_ancestors($_post);
    263                         $_post = sanitize_post($_post, 'raw');
    264                         wp_cache_add($_post->ID, $_post, 'posts');
     253                // retrieve post by numerical ID (incl. cache roundtrip)
     254                $post = (int) ( is_object($post) ? $post->ID : $post );
     255                if ( ! ( $_post = wp_cache_get($post, 'posts') )
     256                        && null === ( $_post = wp_get_post($post) ) ) {
     257                        return $_post;
    265258                }
    266259        }
    267260
    268261        if ($filter != 'raw')
    269262                $_post = sanitize_post($_post, $filter);
     263               
     264        // convert into parametrized output datatype
     265               
     266        if ( ARRAY_N == $ouput || ARRAY_A == $ouput )   
     267                $_post = get_object_vars($_post);
     268               
     269        if ( ARRAY_N == $ouput )
     270                $_post = array_values($_post);
     271       
     272        return $_post;
     273}
    270274
    271         if ( $output == OBJECT ) {
    272                 return $_post;
    273         } elseif ( $output == ARRAY_A ) {
    274                 $__post = get_object_vars($_post);
    275                 return $__post;
    276         } elseif ( $output == ARRAY_N ) {
    277                 $__post = array_values(get_object_vars($_post));
    278                 return $__post;
    279         } else {
    280                 return $_post;
     275/**
     276 * get post object by id
     277 *
     278 * retrieves the data from the database, retrieves the posts
     279 * ancestors, sanitizes it with RAW context and stores it in
     280 * the cache.
     281 *
     282 * @since 3.0
     283 * @see get_post()
     284 *
     285 * @param int $postid id of post to get
     286 * @return object post, NULL if post of id does not exists
     287 * @global WPDB
     288 */
     289function &wp_get_post( $post_id )
     290{
     291         /* @var $wpdb WPDB */
     292        global $wpdb;
     293       
     294        $post_id = intval($post_id);
     295       
     296        $post = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->posts} WHERE ID = %d LIMIT 1", $post_id));
     297        if ( ! $post )
     298        {
     299                $post = null;           
     300        } else {       
     301                _get_post_ancestors($post);
     302                $post = sanitize_post($post, 'raw');
     303                wp_cache_add($post->ID, $post, 'posts');
    281304        }
     305       
     306        return $post;
    282307}
    283308
    284309/**
     
    859884        return $post;
    860885}
    861886
     887
    862888/**
    863889 * Sanitize post field based on context.
    864890 *