X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/baca9ce86a38dc54c4574890ee2d352fd81f78b2..61343b82c4f0da4c68e4c6373daafff4a81efdd1:/wp-includes/link-template.php?ds=sidebyside diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index de76f45a..f52f8ea2 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -13,7 +13,7 @@ * @uses apply_filters() Calls 'the_permalink' filter on the permalink string. */ function the_permalink() { - echo apply_filters('the_permalink', get_permalink()); + echo esc_url( apply_filters( 'the_permalink', get_permalink() ) ); } /** @@ -232,7 +232,7 @@ function post_permalink( $post_id = 0, $deprecated = '' ) { * * @since 1.5.0 * - * @param mixed $post Optional. Post ID or object. + * @param int|object $post Optional. Post ID or object. * @param bool $leavename Optional, defaults to false. Whether to keep page name. * @param bool $sample Optional, defaults to false. Is it a sample permalink. * @return string @@ -256,7 +256,7 @@ function get_page_link( $post = false, $leavename = false, $sample = false ) { * @since 2.1.0 * @access private * - * @param mixed $post Optional. Post ID or object. + * @param int|object $post Optional. Post ID or object. * @param bool $leavename Optional. Leave name. * @param bool $sample Optional. Sample permalink. * @return string @@ -291,7 +291,7 @@ function _get_page_link( $post = false, $leavename = false, $sample = false ) { * * @since 2.0.0 * - * @param mixed $post Optional. Post ID or object. + * @param int|object $post Optional. Post ID or object. * @param bool $leavename Optional. Leave name. * @return string */ @@ -301,9 +301,9 @@ function get_attachment_link( $post = null, $leavename = false ) { $link = false; $post = get_post( $post ); + $parent = ( $post->post_parent > 0 && $post->post_parent != $post->ID ) ? get_post( $post->post_parent ) : false; - if ( $wp_rewrite->using_permalinks() && ( $post->post_parent > 0 ) && ( $post->post_parent != $post->ID ) ) { - $parent = get_post($post->post_parent); + if ( $wp_rewrite->using_permalinks() && $parent ) { if ( 'page' == $parent->post_type ) $parentlink = _get_page_link( $post->post_parent ); // Ignores page_on_front else @@ -867,9 +867,10 @@ function get_post_type_archive_feed_link( $post_type, $feed = '' ) { if ( ! $link = get_post_type_archive_link( $post_type ) ) return false; + $post_type_obj = get_post_type_object( $post_type ); - if ( $post_type_obj->rewrite['feeds'] && get_option( 'permalink_structure' ) ) { - $link = trailingslashit($link); + if ( get_option( 'permalink_structure' ) && is_array( $post_type_obj->rewrite ) && $post_type_obj->rewrite['feeds'] ) { + $link = trailingslashit( $link ); $link .= 'feed/'; if ( $feed != $default_feed ) $link .= "$feed/"; @@ -896,7 +897,9 @@ function get_edit_post_link( $id = 0, $context = 'display' ) { if ( ! $post = get_post( $id ) ) return; - if ( 'display' == $context ) + if ( 'revision' === $post->post_type ) + $action = ''; + elseif ( 'display' == $context ) $action = '&action=edit'; else $action = '&action=edit'; @@ -905,7 +908,7 @@ function get_edit_post_link( $id = 0, $context = 'display' ) { if ( !$post_type_object ) return; - if ( !current_user_can( $post_type_object->cap->edit_post, $post->ID ) ) + if ( !current_user_can( 'edit_post', $post->ID ) ) return; return apply_filters( 'get_edit_post_link', admin_url( sprintf($post_type_object->_edit_link . $action, $post->ID) ), $post->ID, $context ); @@ -959,7 +962,7 @@ function get_delete_post_link( $id = 0, $deprecated = '', $force_delete = false if ( !$post_type_object ) return; - if ( !current_user_can( $post_type_object->cap->delete_post, $post->ID ) ) + if ( !current_user_can( 'delete_post', $post->ID ) ) return; $action = ( $force_delete || !EMPTY_TRASH_DAYS ) ? 'delete' : 'trash'; @@ -1174,7 +1177,7 @@ function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $pr $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_cats_sql", $current_post_date, $post->post_type), $in_same_cat, $excluded_categories ); $sort = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1" ); - $query = "SELECT p.id FROM $wpdb->posts AS p $join $where $sort"; + $query = "SELECT p.ID FROM $wpdb->posts AS p $join $where $sort"; $query_key = 'adjacent_post_' . md5($query); $result = wp_cache_get($query_key, 'counts'); if ( false !== $result ) { @@ -1217,16 +1220,15 @@ function get_adjacent_post_rel_link($title = '%title', $in_same_cat = false, $ex if ( empty($post) ) return; - if ( empty($post->post_title) ) + $post_title = the_title_attribute( array( 'echo' => false, 'post' => $post ) ); + + if ( empty( $post_title ) ) $post_title = $previous ? __('Previous Post') : __('Next Post'); - else - $post_title = $post->post_title; $date = mysql2date(get_option('date_format'), $post->post_date); $title = str_replace('%title', $post_title, $title); $title = str_replace('%date', $date, $title); - $title = apply_filters('the_title', $title, $post->ID); $link = $previous ? "index, '|' ) . '|i', '', $request); $request = ltrim($request, '/'); $base = trailingslashit( get_bloginfo( 'url' ) ); if ( $wp_rewrite->using_index_permalinks() && ( $pagenum > 1 || '' != $request ) ) - $base .= 'index.php/'; + $base .= $wp_rewrite->index . '/'; if ( $pagenum > 1 ) { $request = ( ( !empty( $request ) ) ? trailingslashit( $request ) : $request ) . user_trailingslashit( $wp_rewrite->pagination_base . "/" . $pagenum, 'paged' ); @@ -1919,7 +1921,7 @@ function get_home_url( $blog_id = null, $path = '', $scheme = null ) { $url = set_url_scheme( $url, $scheme ); - if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false ) + if ( $path && is_string( $path ) ) $url .= '/' . ltrim( $path, '/' ); return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id ); @@ -1971,7 +1973,7 @@ function get_site_url( $blog_id = null, $path = '', $scheme = null ) { $url = set_url_scheme( $url, $scheme ); - if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false ) + if ( $path && is_string( $path ) ) $url .= '/' . ltrim( $path, '/' ); return apply_filters( 'site_url', $url, $path, $scheme, $blog_id ); @@ -2005,7 +2007,7 @@ function admin_url( $path = '', $scheme = 'admin' ) { function get_admin_url( $blog_id = null, $path = '', $scheme = 'admin' ) { $url = get_site_url($blog_id, 'wp-admin/', $scheme); - if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false ) + if ( $path && is_string( $path ) ) $url .= ltrim( $path, '/' ); return apply_filters( 'admin_url', $url, $path, $blog_id ); @@ -2018,12 +2020,13 @@ function get_admin_url( $blog_id = null, $path = '', $scheme = 'admin' ) { * @since 2.6.0 * * @param string $path Optional. Path relative to the includes url. + * @param string $scheme Optional. Scheme to give the includes url context. * @return string Includes url link with optional path appended. */ -function includes_url($path = '') { - $url = site_url() . '/' . WPINC . '/'; +function includes_url( $path = '', $scheme = null ) { + $url = site_url( '/' . WPINC . '/', $scheme ); - if ( !empty($path) && is_string($path) && strpos($path, '..') === false ) + if ( $path && is_string( $path ) ) $url .= ltrim($path, '/'); return apply_filters('includes_url', $url, $path); @@ -2041,7 +2044,7 @@ function includes_url($path = '') { function content_url($path = '') { $url = set_url_scheme( WP_CONTENT_URL ); - if ( !empty($path) && is_string($path) && strpos($path, '..') === false ) + if ( $path && is_string( $path ) ) $url .= '/' . ltrim($path, '/'); return apply_filters('content_url', $url, $path); @@ -2080,7 +2083,7 @@ function plugins_url($path = '', $plugin = '') { $url .= '/' . ltrim($folder, '/'); } - if ( !empty($path) && is_string($path) && strpos($path, '..') === false ) + if ( $path && is_string( $path ) ) $url .= '/' . ltrim($path, '/'); return apply_filters('plugins_url', $url, $path, $plugin); @@ -2111,7 +2114,7 @@ function network_site_url( $path = '', $scheme = null ) { else $url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme ); - if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false ) + if ( $path && is_string( $path ) ) $url .= ltrim( $path, '/' ); return apply_filters( 'network_site_url', $url, $path, $scheme ); @@ -2147,7 +2150,7 @@ function network_home_url( $path = '', $scheme = null ) { else $url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme ); - if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false ) + if ( $path && is_string( $path ) ) $url .= ltrim( $path, '/' ); return apply_filters( 'network_home_url', $url, $path, $orig_scheme); @@ -2169,7 +2172,7 @@ function network_admin_url( $path = '', $scheme = 'admin' ) { $url = network_site_url('wp-admin/network/', $scheme); - if ( !empty($path) && is_string($path) && strpos($path, '..') === false ) + if ( $path && is_string( $path ) ) $url .= ltrim($path, '/'); return apply_filters('network_admin_url', $url, $path); @@ -2188,7 +2191,7 @@ function network_admin_url( $path = '', $scheme = 'admin' ) { function user_admin_url( $path = '', $scheme = 'admin' ) { $url = network_site_url('wp-admin/user/', $scheme); - if ( !empty($path) && is_string($path) && strpos($path, '..') === false ) + if ( $path && is_string( $path ) ) $url .= ltrim($path, '/'); return apply_filters('user_admin_url', $url, $path);