WordPress.org

Make WordPress Core

Ticket #11631: 11631-code-improvements.patch

File 11631-code-improvements.patch, 5.5 KB (added by hakre, 6 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 *