WordPress.org

Make WordPress Core

Ticket #14760: wp_get_shortlink-2.diff

File wp_get_shortlink-2.diff, 1.1 KB (added by sillybean, 7 years ago)
  • wp-includes/link-template.php

     
    23792379
    23802380        global $wp_query;
    23812381        $post_id = 0;
    2382         if ( 'query' == $context && is_single() ) {
     2382        if ( 'query' == $context && is_singular() ) {
    23832383                $post_id = $wp_query->get_queried_object_id();
    23842384        } elseif ( 'post' == $context ) {
    23852385                $post = get_post($id);
     
    23882388
    23892389        $shortlink = '';
    23902390
    2391         // Return p= link for posts.
     2391        // Return p= link for all public post types.
    23922392        if ( !empty($post_id) && '' != get_option('permalink_structure') ) {
    2393                 $post = get_post($post_id);
    2394                 if ( isset($post->post_type) && 'post' == $post->post_type )
    2395                         $shortlink = home_url('?p=' . $post->ID);
     2393                if (!isset($post)) {
     2394                        $post = get_post($post_id);
     2395                }
     2396                $post_type = get_post_type_object( $post->post_type );
     2397                if ( $post_type->public ) {
     2398                        $shortlink = home_url('?p=' . $post_id);
     2399                }
    23962400        }
    23972401
    23982402        return apply_filters('get_shortlink', $shortlink, $id, $context, $allow_slugs);