Changeset 13635
- Timestamp:
- 03/09/2010 07:36:38 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/edit-form-advanced.php
r13217 r13635 193 193 <?php 194 194 $sample_permalink_html = get_sample_permalink_html($post->ID); 195 $shortlink = wp_get_shortlink($post->ID, 'post'); 196 if ( !empty($shortlink) ) 197 $sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button" onclick="prompt('URL:', jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>'; 198 195 199 if ( !( 'pending' == $post->post_status && !current_user_can( $post_type_object->publish_cap ) ) ) { ?> 196 200 <div id="edit-slug-box"> -
trunk/wp-includes/default-filters.php
r13487 r13635 192 192 add_action( 'wp_head', 'rel_canonical' ); 193 193 add_action( 'wp_footer', 'wp_print_footer_scripts' ); 194 add_action( 'wp_head', 'wp_shortlink_wp_head' ); 195 add_action( 'wp', 'wp_shortlink_header' ); 194 196 195 197 // Feed Generator Tags -
trunk/wp-includes/link-template.php
r13557 r13635 2051 2051 } 2052 2052 2053 /** 2054 * Return a shortlink for a post, page, attachment, or blog. 2055 * 2056 * Shortlinks are not supported by default. A plugin is required to get shortlink support. 2057 * This function exists to provide a shortlink tag that all themes and plugins can target. A plugin must hook in to 2058 * provide the actual shortlinks. Plugins can short circuit this function via the pre_get_shortlink filter or filter the output 2059 * via the get_shortlink filter. 2060 * 2061 * @since 3.0.0. 2062 * 2063 * @param int $id A post or blog id. Default is 0, which means the current post or blog. 2064 * @param string $contex Whether the id is a 'blog' id, 'post' id, or 'media' id. If 'post', the post_type of the post is consulted. If 'query', the current query is consulted to determine the id and context. Default is 'post'. 2065 * @param bool $allow_slugs Whether to allow post slugs in the shortlink. It is up to the plugin how and whether to honor this. 2066 * @return string A shortlink or an empty string if no shortlink exists for the requested resource or if shortlinks are not enabled. 2067 */ 2068 function wp_get_shortlink($id = 0, $context = 'post', $allow_slugs = true) { 2069 // Allow plugins to short-circuit this function. 2070 $shortlink = apply_filters('pre_get_shortlink', false, $id, $context, $allow_slugs); 2071 if ( false !== $shortlink ) 2072 return $shortlink; 2073 2074 global $wp_query; 2075 $post_id = 0; 2076 if ( 'query' == $context && is_single() ) 2077 $post_id = $wp_query->get_queried_object_id(); 2078 elseif ( 'post' == $context ) 2079 $post_id = $id; 2080 2081 $shortlink = ''; 2082 2083 // Return p= link for posts. 2084 if ( !empty($post_id) ) { 2085 $post = get_post($post_id); 2086 if ( isset($post->post_type) && 'post' == $post->post_type ) 2087 $shortlink = home_url('?p=' . $post->ID); 2088 } 2089 2090 return apply_filters('get_shortlink', $shortlink, $id, $context, $allow_slugs); 2091 } 2092 2093 /** 2094 * Inject rel=sortlink into head if a shortlink is defined for the current page. 2095 * 2096 * Attached to the wp_head action. 2097 * 2098 * @since 3.0.0 2099 * 2100 * @uses wp_get_shortlink() 2101 */ 2102 function wp_shortlink_wp_head() { 2103 $shortlink = wp_get_shortlink(0, 'query'); 2104 2105 if ( empty($shortlink) ) 2106 return; 2107 2108 echo '<link rel="shortlink" href="' . $shortlink . '" />'; 2109 } 2110 2111 /** 2112 * Send a Link: rel=shortlink header if a shortlink is defined for the current page. 2113 * 2114 * Attached to the wp action. 2115 * 2116 * @since 3.0.0 2117 * 2118 * @uses wp_get_shortlink() 2119 */ 2120 function wp_shortlink_header() { 2121 if ( headers_sent() ) 2122 return; 2123 2124 $shortlink = wp_get_shortlink(0, 'query'); 2125 2126 if ( empty($shortlink) ) 2127 return; 2128 2129 header('Link: <' . $shortlink . '>; rel=shortlink'); 2130 } 2131 2053 2132 ?>
Note: See TracChangeset
for help on using the changeset viewer.