X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/f9001779751f83dc8a10e478bfecb4d8dd5f964c..bf5c68485ef07868ad0a91168ecd0092af7661ae:/wp-includes/link-template.php diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index 33f0a7dd..7c5f5119 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -560,7 +560,7 @@ function get_author_feed_link( $author_id, $feed = '' ) { /** * Retrieve the feed link for a category. * - * Returns a link to the feed for all post in a given category. A specific feed + * Returns a link to the feed for all posts in a given category. A specific feed * can be requested or left blank to get the default feed. * * @package WordPress @@ -576,9 +576,9 @@ function get_category_feed_link($cat_id, $feed = '') { } /** - * Retrieve the feed link for a taxonomy. + * Retrieve the feed link for a term. * - * Returns a link to the feed for all post in a given term. A specific feed + * Returns a link to the feed for all posts in a given term. A specific feed * can be requested or left blank to get the default feed. * * @since 3.0 @@ -586,7 +586,7 @@ function get_category_feed_link($cat_id, $feed = '') { * @param int $term_id ID of a category. * @param string $taxonomy Optional. Taxonomy of $term_id * @param string $feed Optional. Feed type. - * @return string Link to the feed for the taxonomy specified by $term_id and $taxonomy. + * @return string Link to the feed for the term specified by $term_id and $taxonomy. */ function get_term_feed_link( $term_id, $taxonomy = 'category', $feed = '' ) { global $wp_rewrite; @@ -847,6 +847,8 @@ function get_post_type_archive_link( $post_type ) { $struct = ( true === $post_type_obj->has_archive ) ? $post_type_obj->rewrite['slug'] : $post_type_obj->has_archive; if ( $post_type_obj->rewrite['with_front'] ) $struct = $wp_rewrite->front . $struct; + else + $struct = $wp_rewrite->root . $struct; $link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) ); } else { $link = home_url( '?post_type=' . $post_type ); @@ -893,7 +895,7 @@ function get_post_type_archive_feed_link( $post_type, $feed = '' ) { * @since 2.3.0 * * @param int $id Optional. Post ID. - * @param string $context Optional, default to display. How to write the '&', defaults to '&'. + * @param string $context Optional, defaults to display. How to write the '&', defaults to '&'. * @return string */ function get_edit_post_link( $id = 0, $context = 'display' ) { @@ -1062,8 +1064,8 @@ function edit_bookmark_link( $link = '', $before = '', $after = '', $bookmark = * * @since 1.5.0 * - * @param bool $in_same_cat Optional. Whether post should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether post should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. * @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists. */ function get_previous_post($in_same_cat = false, $excluded_categories = '') { @@ -1075,8 +1077,8 @@ function get_previous_post($in_same_cat = false, $excluded_categories = '') { * * @since 1.5.0 * - * @param bool $in_same_cat Optional. Whether post should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether post should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. * @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists. */ function get_next_post($in_same_cat = false, $excluded_categories = '') { @@ -1090,12 +1092,12 @@ function get_next_post($in_same_cat = false, $excluded_categories = '') { * * @since 2.5.0 * - * @param bool $in_same_cat Optional. Whether post should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether post should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. * @param bool $previous Optional. Whether to retrieve previous post. * @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists. */ -function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $previous = true) { +function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $previous = true ) { global $post, $wpdb; if ( empty( $post ) ) @@ -1105,7 +1107,7 @@ function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $pre $join = ''; $posts_in_ex_cats_sql = ''; - if ( $in_same_cat || !empty($excluded_categories) ) { + if ( $in_same_cat || ! empty( $excluded_categories ) ) { $join = " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id"; if ( $in_same_cat ) { @@ -1114,9 +1116,20 @@ function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $pre } $posts_in_ex_cats_sql = "AND tt.taxonomy = 'category'"; - if ( !empty($excluded_categories) ) { - $excluded_categories = array_map('intval', explode(' and ', $excluded_categories)); - if ( !empty($cat_array) ) { + if ( ! empty( $excluded_categories ) ) { + if ( ! is_array( $excluded_categories ) ) { + // back-compat, $excluded_categories used to be IDs separated by " and " + if ( strpos( $excluded_categories, ' and ' ) !== false ) { + _deprecated_argument( __FUNCTION__, '3.3', sprintf( __( 'Use commas instead of %s to separate excluded categories.' ), "'and'" ) ); + $excluded_categories = explode( ' and ', $excluded_categories ); + } else { + $excluded_categories = explode( ',', $excluded_categories ); + } + } + + $excluded_categories = array_map( 'intval', $excluded_categories ); + + if ( ! empty( $cat_array ) ) { $excluded_categories = array_diff($excluded_categories, $cat_array); $posts_in_ex_cats_sql = ''; } @@ -1157,9 +1170,9 @@ function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $pre * @since 2.8.0 * * @param string $title Optional. Link title format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. - * @param bool $previous Optional, default is true. Whether display link to previous post. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. + * @param bool $previous Optional, default is true. Whether to display link to previous or next post. * @return string */ function get_adjacent_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '', $previous = true) { @@ -1194,8 +1207,8 @@ function get_adjacent_post_rel_link($title = '%title', $in_same_cat = false, $ex * @since 2.8.0 * * @param string $title Optional. Link title format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. */ function adjacent_posts_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true); @@ -1205,7 +1218,7 @@ function adjacent_posts_rel_link($title = '%title', $in_same_cat = false, $exclu /** * Display relational links for the posts adjacent to the current post for single post pages. * - * This is meant to be attached to actions like 'wp_head'. Do not call this directly in plugins or theme templates. + * This is meant to be attached to actions like 'wp_head'. Do not call this directly in plugins or theme templates. * @since 3.0.0 * */ @@ -1221,8 +1234,8 @@ function adjacent_posts_rel_link_wp_head() { * @since 2.8.0 * * @param string $title Optional. Link title format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. */ function next_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', false); @@ -1234,8 +1247,8 @@ function next_post_rel_link($title = '%title', $in_same_cat = false, $excluded_c * @since 2.8.0 * * @param string $title Optional. Link title format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. */ function prev_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true); @@ -1245,158 +1258,47 @@ function prev_post_rel_link($title = '%title', $in_same_cat = false, $excluded_c * Retrieve boundary post. * * Boundary being either the first or last post by publish date within the constraints specified - * by in same category or excluded categories. + * by $in_same_cat or $excluded_categories. * * @since 2.8.0 * - * @param bool $in_same_cat Optional. Whether returned post should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether returned post should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. * @param bool $start Optional. Whether to retrieve first or last post. * @return object */ -function get_boundary_post($in_same_cat = false, $excluded_categories = '', $start = true) { +function get_boundary_post( $in_same_cat = false, $excluded_categories = '', $start = true ) { global $post; - if ( empty($post) || !is_single() || is_attachment() ) + if ( empty($post) || ! is_single() || is_attachment() ) return null; $cat_array = array(); - $excluded_categories = array(); - if ( !empty($in_same_cat) || !empty($excluded_categories) ) { - if ( !empty($in_same_cat) ) { - $cat_array = wp_get_object_terms($post->ID, 'category', array('fields' => 'ids')); - } + if( ! is_array( $excluded_categories ) ) + $excluded_categories = explode( ',', $excluded_categories ); - if ( !empty($excluded_categories) ) { - $excluded_categories = array_map('intval', explode(',', $excluded_categories)); + if ( $in_same_cat || ! empty( $excluded_categories ) ) { + if ( $in_same_cat ) + $cat_array = wp_get_object_terms( $post->ID, 'category', array( 'fields' => 'ids' ) ); - if ( !empty($cat_array) ) - $excluded_categories = array_diff($excluded_categories, $cat_array); + if ( ! empty( $excluded_categories ) ) { + $excluded_categories = array_map( 'intval', $excluded_categories ); + $excluded_categories = array_diff( $excluded_categories, $cat_array ); $inverse_cats = array(); - foreach ( $excluded_categories as $excluded_category) + foreach ( $excluded_categories as $excluded_category ) $inverse_cats[] = $excluded_category * -1; $excluded_categories = $inverse_cats; } } - $categories = implode(',', array_merge($cat_array, $excluded_categories) ); + $categories = implode( ',', array_merge( $cat_array, $excluded_categories ) ); $order = $start ? 'ASC' : 'DESC'; return get_posts( array('numberposts' => 1, 'category' => $categories, 'order' => $order, 'update_post_term_cache' => false, 'update_post_meta_cache' => false) ); } -/** - * Get boundary post relational link. - * - * Can either be start or end post relational link. - * - * @since 2.8.0 - * - * @param string $title Optional. Link title format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. - * @param bool $start Optional, default is true. Whether display link to first or last post. - * @return string - */ -function get_boundary_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '', $start = true) { - $posts = get_boundary_post($in_same_cat, $excluded_categories, $start); - // If there is no post stop. - if ( empty($posts) ) - return; - - // Even though we limited get_posts to return only 1 item it still returns an array of objects. - $post = $posts[0]; - - if ( empty($post->post_title) ) - $post->post_title = $start ? __('First Post') : __('Last Post'); - - $date = mysql2date(get_option('date_format'), $post->post_date); - - $title = str_replace('%title', $post->post_title, $title); - $title = str_replace('%date', $date, $title); - $title = apply_filters('the_title', $title, $post->ID); - - $link = $start ? "\n"; - - $boundary = $start ? 'start' : 'end'; - return apply_filters( "{$boundary}_post_rel_link", $link ); -} - -/** - * Display relational link for the first post. - * - * @since 2.8.0 - * - * @param string $title Optional. Link title format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. - */ -function start_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') { - echo get_boundary_post_rel_link($title, $in_same_cat, $excluded_categories, true); -} - -/** - * Get site index relational link. - * - * @since 2.8.0 - * - * @return string - */ -function get_index_rel_link() { - $link = "\n"; - return apply_filters( "index_rel_link", $link ); -} - -/** - * Display relational link for the site index. - * - * @since 2.8.0 - */ -function index_rel_link() { - echo get_index_rel_link(); -} - -/** - * Get parent post relational link. - * - * @since 2.8.0 - * - * @param string $title Optional. Link title format. - * @return string - */ -function get_parent_post_rel_link($title = '%title') { - if ( ! empty( $GLOBALS['post'] ) && ! empty( $GLOBALS['post']->post_parent ) ) - $post = & get_post($GLOBALS['post']->post_parent); - - if ( empty($post) ) - return; - - $date = mysql2date(get_option('date_format'), $post->post_date); - - $title = str_replace('%title', $post->post_title, $title); - $title = str_replace('%date', $date, $title); - $title = apply_filters('the_title', $title, $post->ID); - - $link = "\n"; - - return apply_filters( "parent_post_rel_link", $link ); -} - -/** - * Display relational link for parent item - * - * @since 2.8.0 - */ -function parent_post_rel_link($title = '%title') { - echo get_parent_post_rel_link($title); -} - /** * Display previous post link that is adjacent to the current post. * @@ -1404,8 +1306,8 @@ function parent_post_rel_link($title = '%title') { * * @param string $format Optional. Link anchor format. * @param string $link Optional. Link permalink format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. */ function previous_post_link($format='« %link', $link='%title', $in_same_cat = false, $excluded_categories = '') { adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, true); @@ -1418,8 +1320,8 @@ function previous_post_link($format='« %link', $link='%title', $in_same_ca * * @param string $format Optional. Link anchor format. * @param string $link Optional. Link permalink format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. */ function next_post_link($format='%link »', $link='%title', $in_same_cat = false, $excluded_categories = '') { adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, false); @@ -1434,9 +1336,9 @@ function next_post_link($format='%link »', $link='%title', $in_same_cat = * * @param string $format Link anchor format. * @param string $link Link permalink format. - * @param bool $in_same_cat Optional. Whether link should be in same category. - * @param string $excluded_categories Optional. Excluded categories IDs. - * @param bool $previous Optional, default is true. Whether display link to previous post. + * @param bool $in_same_cat Optional. Whether link should be in a same category. + * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs. + * @param bool $previous Optional, default is true. Whether to display link to previous or next post. */ function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true) { if ( $previous && is_attachment() ) @@ -1468,7 +1370,7 @@ function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_cate } /** - * Retrieve get links for page numbers. + * Retrieve links for page numbers. * * @since 1.5.0 * @@ -1530,7 +1432,7 @@ function get_pagenum_link($pagenum = 1) { } /** - * Retrieve next posts pages link. + * Retrieve next posts page link. * * Backported from 2.1.3 to 2.0.10. * @@ -1552,7 +1454,7 @@ function get_next_posts_page_link($max_page = 0) { } /** - * Display or return the next posts pages link. + * Display or return the next posts page link. * * @since 0.71 * @@ -1569,7 +1471,7 @@ function next_posts( $max_page = 0, $echo = true ) { } /** - * Return the next posts pages link. + * Return the next posts page link. * * @since 2.7.0 * @@ -1577,7 +1479,7 @@ function next_posts( $max_page = 0, $echo = true ) { * @param int $max_page Optional. Max pages. * @return string|null */ -function get_next_posts_link( $label = 'Next Page »', $max_page = 0 ) { +function get_next_posts_link( $label = null, $max_page = 0 ) { global $paged, $wp_query; if ( !$max_page ) @@ -1588,6 +1490,9 @@ function get_next_posts_link( $label = 'Next Page »', $max_page = 0 ) { $nextpage = intval($paged) + 1; + if ( null === $label ) + $label = __( 'Next Page »' ); + if ( !is_single() && ( $nextpage <= $max_page ) ) { $attr = apply_filters( 'next_posts_link_attributes', '' ); return '" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&$1', $label) . ''; @@ -1595,7 +1500,7 @@ function get_next_posts_link( $label = 'Next Page »', $max_page = 0 ) { } /** - * Display the next posts pages link. + * Display the next posts page link. * * @since 0.71 * @uses get_next_posts_link() @@ -1603,12 +1508,12 @@ function get_next_posts_link( $label = 'Next Page »', $max_page = 0 ) { * @param string $label Content for link text. * @param int $max_page Optional. Max pages. */ -function next_posts_link( $label = 'Next Page »', $max_page = 0 ) { +function next_posts_link( $label = null, $max_page = 0 ) { echo get_next_posts_link( $label, $max_page ); } /** - * Retrieve previous post pages link. + * Retrieve previous posts page link. * * Will only return string, if not on a single page or post. * @@ -1630,7 +1535,7 @@ function get_previous_posts_page_link() { } /** - * Display or return the previous posts pages link. + * Display or return the previous posts page link. * * @since 0.71 * @@ -1646,16 +1551,19 @@ function previous_posts( $echo = true ) { } /** - * Return the previous posts pages link. + * Return the previous posts page link. * * @since 2.7.0 * * @param string $label Optional. Previous page link text. * @return string|null */ -function get_previous_posts_link( $label = '« Previous Page' ) { +function get_previous_posts_link( $label = null ) { global $paged; + if ( null === $label ) + $label = __( '« Previous Page' ); + if ( !is_single() && $paged > 1 ) { $attr = apply_filters( 'previous_posts_link_attributes', '' ); return '". preg_replace( '/&([^#])(?![a-z]{1,8};)/', '&$1', $label ) .''; @@ -1670,7 +1578,7 @@ function get_previous_posts_link( $label = '« Previous Page' ) { * * @param string $label Optional. Previous page link text. */ -function previous_posts_link( $label = '« Previous Page' ) { +function previous_posts_link( $label = null ) { echo get_previous_posts_link( $label ); } @@ -1728,7 +1636,7 @@ function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) { } /** - * Retrieve page numbers links. + * Retrieve comments page number link. * * @since 2.7.0 * @@ -1764,7 +1672,7 @@ function get_comments_pagenum_link( $pagenum = 1, $max_page = 0 ) { } /** - * Return the link to next comments pages. + * Return the link to next comments page. * * @since 2.7.1 * @@ -1798,7 +1706,7 @@ function get_next_comments_link( $label = '', $max_page = 0 ) { } /** - * Display the link to next comments pages. + * Display the link to next comments page. * * @since 2.7.0 * @@ -1851,7 +1759,7 @@ function previous_comments_link( $label = '' ) { * @see paginate_links() * @since 2.7.0 * - * @param string|array $args Optional args. See paginate_links. + * @param string|array $args Optional args. See paginate_links(). * @return string Markup for pagination links. */ function paginate_comments_links($args = array()) { @@ -1917,7 +1825,7 @@ function get_shortcut_link() { /** * Retrieve the home url for the current site. * - * Returns the 'home' option with the appropriate protocol, 'https' if + * Returns the 'home' option with the appropriate protocol, 'https' if * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is * overridden. * @@ -1927,7 +1835,7 @@ function get_shortcut_link() { * @uses get_home_url() * * @param string $path (optional) Path relative to the home url. - * @param string $scheme (optional) Scheme to give the home url context. Currently 'http','https' + * @param string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https'. * @return string Home url link with optional path appended. */ function home_url( $path = '', $scheme = null ) { @@ -1937,7 +1845,7 @@ function home_url( $path = '', $scheme = null ) { /** * Retrieve the home url for a given site. * - * Returns the 'home' option with the appropriate protocol, 'https' if + * Returns the 'home' option with the appropriate protocol, 'https' if * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is * overridden. * @@ -1946,7 +1854,7 @@ function home_url( $path = '', $scheme = null ) { * * @param int $blog_id (optional) Blog ID. Defaults to current blog. * @param string $path (optional) Path relative to the home url. - * @param string $scheme (optional) Scheme to give the home url context. Currently 'http','https' + * @param string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https'. * @return string Home url link with optional path appended. */ function get_home_url( $blog_id = null, $path = '', $scheme = null ) { @@ -1972,7 +1880,7 @@ function get_home_url( $blog_id = null, $path = '', $scheme = null ) { /** * Retrieve the site url for the current site. * - * Returns the 'site_url' option with the appropriate protocol, 'https' if + * Returns the 'site_url' option with the appropriate protocol, 'https' if * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is * overridden. * @@ -1982,7 +1890,7 @@ function get_home_url( $blog_id = null, $path = '', $scheme = null ) { * @uses get_site_url() * * @param string $path Optional. Path relative to the site url. - * @param string $scheme Optional. Scheme to give the site url context. Currently 'http','https', 'login', 'login_post', or 'admin'. + * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', or 'admin'. * @return string Site url link with optional path appended. */ function site_url( $path = '', $scheme = null ) { @@ -1992,7 +1900,7 @@ function site_url( $path = '', $scheme = null ) { /** * Retrieve the site url for a given site. * - * Returns the 'site_url' option with the appropriate protocol, 'https' if + * Returns the 'site_url' option with the appropriate protocol, 'https' if * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is * overridden. * @@ -2001,7 +1909,7 @@ function site_url( $path = '', $scheme = null ) { * * @param int $blog_id (optional) Blog ID. Defaults to current blog. * @param string $path Optional. Path relative to the site url. - * @param string $scheme Optional. Scheme to give the site url context. Currently 'http','https', 'login', 'login_post', or 'admin'. + * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', or 'admin'. * @return string Site url link with optional path appended. */ function get_site_url( $blog_id = null, $path = '', $scheme = null ) { @@ -2038,9 +1946,9 @@ function get_site_url( $blog_id = null, $path = '', $scheme = null ) { * @package WordPress * @since 2.6.0 * - * @param string $path Optional path relative to the admin url + * @param string $path Optional path relative to the admin url. * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Admin url link with optional path appended + * @return string Admin url link with optional path appended. */ function admin_url( $path = '', $scheme = 'admin' ) { return get_admin_url(null, $path, $scheme); @@ -2053,9 +1961,9 @@ function admin_url( $path = '', $scheme = 'admin' ) { * @since 3.0.0 * * @param int $blog_id (optional) Blog ID. Defaults to current blog. - * @param string $path Optional path relative to the admin url + * @param string $path Optional path relative to the admin url. * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Admin url link with optional path appended + * @return string Admin url link with optional path appended. */ function get_admin_url( $blog_id = null, $path = '', $scheme = 'admin' ) { $url = get_site_url($blog_id, 'wp-admin/', $scheme); @@ -2146,7 +2054,7 @@ function plugins_url($path = '', $plugin = '') { /** * Retrieve the site url for the current network. * - * Returns the site url with the appropriate protocol, 'https' if + * Returns the site url with the appropriate protocol, 'https' if * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is * overridden. * @@ -2154,7 +2062,7 @@ function plugins_url($path = '', $plugin = '') { * @since 3.0.0 * * @param string $path Optional. Path relative to the site url. - * @param string $scheme Optional. Scheme to give the site url context. Currently 'http','https', 'login', 'login_post', or 'admin'. + * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', or 'admin'. * @return string Site url link with optional path appended. */ function network_site_url( $path = '', $scheme = null ) { @@ -2186,7 +2094,7 @@ function network_site_url( $path = '', $scheme = null ) { /** * Retrieve the home url for the current network. * - * Returns the home url with the appropriate protocol, 'https' if + * Returns the home url with the appropriate protocol, 'https' if * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is * overridden. * @@ -2194,7 +2102,7 @@ function network_site_url( $path = '', $scheme = null ) { * @since 3.0.0 * * @param string $path (optional) Path relative to the home url. - * @param string $scheme (optional) Scheme to give the home url context. Currently 'http','https' + * @param string $scheme (optional) Scheme to give the home url context. Currently 'http', 'https'. * @return string Home url link with optional path appended. */ function network_home_url( $path = '', $scheme = null ) { @@ -2222,9 +2130,9 @@ function network_home_url( $path = '', $scheme = null ) { * @package WordPress * @since 3.0.0 * - * @param string $path Optional path relative to the admin url + * @param string $path Optional path relative to the admin url. * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Admin url link with optional path appended + * @return string Admin url link with optional path appended. */ function network_admin_url( $path = '', $scheme = 'admin' ) { if ( ! is_multisite() ) @@ -2244,9 +2152,9 @@ function network_admin_url( $path = '', $scheme = 'admin' ) { * @package WordPress * @since 3.0.0 * - * @param string $path Optional path relative to the admin url + * @param string $path Optional path relative to the admin url. * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Admin url link with optional path appended + * @return string Admin url link with optional path appended. */ function user_admin_url( $path = '', $scheme = 'admin' ) { $url = network_site_url('wp-admin/user/', $scheme); @@ -2263,9 +2171,9 @@ function user_admin_url( $path = '', $scheme = 'admin' ) { * @package WordPress * @since 3.1.0 * - * @param string $path Optional path relative to the admin url + * @param string $path Optional path relative to the admin url. * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Admin url link with optional path appended + * @return string Admin url link with optional path appended. */ function self_admin_url($path = '', $scheme = 'admin') { if ( is_network_admin() ) @@ -2279,28 +2187,28 @@ function self_admin_url($path = '', $scheme = 'admin') { /** * Get the URL to the user's dashboard. * - * If a user does not belong to any sites, the global user dashboard is used. If the user belongs to the current site, - * the dashboard for the current site is returned. If the user cannot edit the current site, the dashboard to the user's + * If a user does not belong to any site, the global user dashboard is used. If the user belongs to the current site, + * the dashboard for the current site is returned. If the user cannot edit the current site, the dashboard to the user's * primary blog is returned. * * @since 3.1.0 * * @param int $user_id User ID - * @param string $path Optional path relative to the dashboard. Use only paths known to both blog and user admins. + * @param string $path Optional path relative to the dashboard. Use only paths known to both blog and user admins. * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Dashboard url link with optional path appended + * @return string Dashboard url link with optional path appended. */ function get_dashboard_url( $user_id, $path = '', $scheme = 'admin' ) { $user_id = (int) $user_id; $blogs = get_blogs_of_user( $user_id ); - if ( empty($blogs) ) { + if ( ! is_super_admin() && empty($blogs) ) { $url = user_admin_url( $path, $scheme ); } elseif ( ! is_multisite() ) { $url = admin_url( $path, $scheme ); } else { $current_blog = get_current_blog_id(); - if ( $current_blog && in_array($current_blog, array_keys($blogs)) ) { + if ( $current_blog && ( is_super_admin( $user_id ) || in_array( $current_blog, array_keys( $blogs ) ) ) ) { $url = admin_url( $path, $scheme ); } else { $active = get_active_blog_for_user( $user_id ); @@ -2321,7 +2229,7 @@ function get_dashboard_url( $user_id, $path = '', $scheme = 'admin' ) { * * @param int $user User ID * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes. - * @return string Dashboard url link with optional path appended + * @return string Dashboard url link with optional path appended. */ function get_edit_profile_url( $user, $scheme = 'admin' ) { $user = (int) $user; @@ -2337,7 +2245,7 @@ function get_edit_profile_url( $user, $scheme = 'admin' ) { } /** - * Output rel=canonical for singular queries + * Output rel=canonical for singular queries. * * @package WordPress * @since 2.9.0 @@ -2357,14 +2265,14 @@ function rel_canonical() { /** * Return a shortlink for a post, page, attachment, or blog. * - * This function exists to provide a shortlink tag that all themes and plugins can target. A plugin must hook in to - * provide the actual shortlinks. Default shortlink support is limited to providing ?p= style links for posts. - * Plugins can short circuit this function via the pre_get_shortlink filter or filter the output + * This function exists to provide a shortlink tag that all themes and plugins can target. A plugin must hook in to + * provide the actual shortlinks. Default shortlink support is limited to providing ?p= style links for posts. + * Plugins can short-circuit this function via the pre_get_shortlink filter or filter the output * via the get_shortlink filter. * * @since 3.0.0. * - * @param int $id A post or blog id. Default is 0, which means the current post or blog. + * @param int $id A post or blog id. Default is 0, which means the current post or blog. * @param string $context 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'. * @param bool $allow_slugs Whether to allow post slugs in the shortlink. It is up to the plugin how and whether to honor this. * @return string A shortlink or an empty string if no shortlink exists for the requested resource or if shortlinks are not enabled. @@ -2397,7 +2305,7 @@ function wp_get_shortlink($id = 0, $context = 'post', $allow_slugs = true) { } /** - * Inject rel=sortlink into head if a shortlink is defined for the current page. + * Inject rel=shortlink into head if a shortlink is defined for the current page. * * Attached to the wp_head action. * @@ -2411,7 +2319,7 @@ function wp_shortlink_wp_head() { if ( empty( $shortlink ) ) return; - echo "\n"; + echo "\n"; } /** @@ -2444,10 +2352,10 @@ function wp_shortlink_header() { * * @since 3.0.0 * - * @param string $text Optional The link text or HTML to be displayed. Defaults to 'This is the short link.' - * @param string $title Optional The tooltip for the link. Must be sanitized. Defaults to the sanitized post title. + * @param string $text Optional The link text or HTML to be displayed. Defaults to 'This is the short link.' + * @param string $title Optional The tooltip for the link. Must be sanitized. Defaults to the sanitized post title. * @param string $before Optional HTML to display before the link. - * @param string $before Optional HTML to display after the link. + * @param string $after Optional HTML to display after the link. */ function the_shortlink( $text = '', $title = '', $before = '', $after = '' ) { global $post;