WordPress.org

Make WordPress Core

Ticket #12119: 12119.2.diff

File 12119.2.diff, 11.4 KB (added by ryan, 8 years ago)
  • wp-includes/link-template.php

     
    17321732}
    17331733
    17341734/**
    1735  * Retrieve the home url.
     1735 * Retrieve the home url for the current site.
    17361736 *
    17371737 * Returns the 'home' option with the appropriate protocol,  'https' if
    17381738 * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is
    17391739 * overridden.
    17401740 *
    17411741 * @package WordPress
    1742  * @since 3.0
     1742 * @since 3.0.0
    17431743 *
     1744 * @uses get_home_url()
     1745 *
    17441746 * @param  string $path   (optional) Path relative to the home url.
    17451747 * @param  string $scheme (optional) Scheme to give the home url context. Currently 'http','https'
    17461748 * @return string Home url link with optional path appended.
    17471749*/
    17481750function home_url( $path = '', $scheme = null ) {
     1751        return get_home_url(null, $path, $scheme);
     1752}
     1753
     1754/**
     1755 * Retrieve the home url for a given site.
     1756 *
     1757 * Returns the 'home' option with the appropriate protocol,  'https' if
     1758 * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is
     1759 * overridden.
     1760 *
     1761 * @package WordPress
     1762 * @since 3.0.0
     1763 *
     1764 * @param  int $blog_id   (optional) Blog ID. Defaults to current blog.
     1765 * @param  string $path   (optional) Path relative to the home url.
     1766 * @param  string $scheme (optional) Scheme to give the home url context. Currently 'http','https'
     1767 * @return string Home url link with optional path appended.
     1768*/
     1769function get_home_url( $blog_id = null, $path = '', $scheme = null ) {
    17491770        $orig_scheme = $scheme;
    17501771        $scheme      = is_ssl() && !is_admin() ? 'https' : 'http';
    1751         $url = str_replace( 'http://', "$scheme://", get_option('home') );
    17521772
     1773        if ( empty($blog_id) || !is_multisite() )
     1774                $home = get_option('home');
     1775        else
     1776                $home = untrailingslashit(get_blogaddress_by_id($blog_id));
     1777
     1778        $url = str_replace( 'http://', "$scheme://", $home );
     1779
    17531780        if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
    17541781                $url .= '/' . ltrim( $path, '/' );
    17551782
    1756         return apply_filters( 'home_url', $url, $path, $orig_scheme );
     1783        return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
    17571784}
    17581785
    17591786/**
    1760  * Retrieve the site url.
     1787 * Retrieve the site url for the current site.
    17611788 *
    17621789 * Returns the 'site_url' option with the appropriate protocol,  'https' if
    17631790 * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is
     
    17661793 * @package WordPress
    17671794 * @since 2.6.0
    17681795 *
     1796 * @uses get_site_url()
     1797 *
    17691798 * @param string $path Optional. Path relative to the site url.
    17701799 * @param string $scheme Optional. Scheme to give the site url context. Currently 'http','https', 'login', 'login_post', or 'admin'.
    17711800 * @return string Site url link with optional path appended.
    17721801*/
    1773 function site_url($path = '', $scheme = null) {
     1802function site_url( $path = '', $scheme = null ) {
     1803        return get_site_url(null, $path, $scheme);
     1804}
     1805
     1806/**
     1807 * Retrieve the site url for a given site.
     1808 *
     1809 * Returns the 'site_url' option with the appropriate protocol,  'https' if
     1810 * is_ssl() and 'http' otherwise. If $scheme is 'http' or 'https', is_ssl() is
     1811 * overridden.
     1812 *
     1813 * @package WordPress
     1814 * @since 3.0.0
     1815 *
     1816 * @param int $blog_id (optional) Blog ID. Defaults to current blog.
     1817 * @param string $path Optional. Path relative to the site url.
     1818 * @param string $scheme Optional. Scheme to give the site url context. Currently 'http','https', 'login', 'login_post', or 'admin'.
     1819 * @return string Site url link with optional path appended.
     1820*/
     1821function get_site_url( $blog_id = null, $path = '', $scheme = null ) {
    17741822        // should the list of allowed schemes be maintained elsewhere?
    17751823        $orig_scheme = $scheme;
    17761824        if ( !in_array($scheme, array('http', 'https')) ) {
     
    17841832                        $scheme = ( is_ssl() ? 'https' : 'http' );
    17851833        }
    17861834
    1787         $url = str_replace( 'http://', "{$scheme}://", get_option('siteurl') );
     1835        if ( empty($blog_id) || !is_multisite() )
     1836                $url = get_option('siteurl');
     1837        else
     1838                $url = untrailingslashit(get_blogaddress_by_id($blog_id));
    17881839
     1840        $url = str_replace( 'http://', "{$scheme}://", $url );
     1841
    17891842        if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
    17901843                $url .= '/' . ltrim($path, '/');
    17911844
    1792         return apply_filters('site_url', $url, $path, $orig_scheme);
     1845        return apply_filters('site_url', $url, $path, $orig_scheme, $blog_id);
    17931846}
    17941847
    17951848/**
    1796  * Retrieve the url to the admin area.
     1849 * Retrieve the url to the admin area for the current site.
    17971850 *
    17981851 * @package WordPress
    17991852 * @since 2.6.0
     
    18011854 * @param string $path Optional path relative to the admin url
    18021855 * @return string Admin url link with optional path appended
    18031856*/
    1804 function admin_url($path = '') {
    1805         $url = site_url('wp-admin/', 'admin');
     1857function admin_url( $path = '' ) {
     1858        return get_admin_url(null, $path);
     1859}
    18061860
     1861/**
     1862 * Retrieve the url to the admin area for a given site.
     1863 *
     1864 * @package WordPress
     1865 * @since 3.0.0
     1866 *
     1867 * @param int $blog_id (optional) Blog ID. Defaults to current blog.
     1868 * @param string $path Optional path relative to the admin url
     1869 * @return string Admin url link with optional path appended
     1870*/
     1871function get_admin_url( $blog_id = null, $path = '' ) {
     1872        $url = get_site_url($blog_id, 'wp-admin/', 'admin');
     1873
    18071874        if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
    18081875                $url .= ltrim($path, '/');
    18091876
    1810         return apply_filters('admin_url', $url, $path);
     1877        return apply_filters('admin_url', $url, $path, $blog_id);
    18111878}
    18121879
    18131880/**
  • wp-admin/ms-edit.php

     
    204204                }
    205205
    206206                if ( $_POST['update_home_url'] == 'update' ) {
    207                         if ( get_option( 'siteurl' ) != 'http://' . $_POST['blog']['domain'] . $_POST['blog']['path'] )
    208                                 update_option( 'siteurl', 'http://' . $_POST['blog']['domain'] . $_POST['blog']['path'] );
     207                        $blog_address = get_blogaddress_by_domain($_POST['blog']['domain'], $_POST['blog']['path']);
     208                        if ( get_option( 'siteurl' ) !=  $blog_address )
     209                                update_option( 'siteurl', $blog_address);
    209210
    210                         if ( get_option( 'home' ) != 'http://' . $_POST['blog']['domain'] . $_POST['blog']['path'] )
    211                                 update_option( 'home', 'http://' . $_POST['blog']['domain'] . $_POST['blog']['path'] );
     211                        if ( get_option( 'home' ) != $blog_address )
     212                                update_option( 'home', $blog_address );
    212213                }
    213214
    214215                $wp_rewrite->flush_rules();
  • wp-admin/ms-sites.php

     
    8282                ?>
    8383                <div class="wrap">
    8484                <?php screen_icon(); ?>
    85                 <h2><?php _e('Edit Site'); ?> - <a href='http://<?php echo $details->domain . $details->path; ?>'>http://<?php echo $details->domain . $details->path; ?></a></h2>
     85                <h2><?php _e('Edit Site'); ?> - <a href='<?php echo get_home_url($id); ?>'><?php echo get_home_url($id); ?></a></h2>
    8686                <form method="post" action="ms-edit.php?action=updateblog">
    8787                        <?php wp_nonce_field('editblog'); ?>
    8888                        <input type="hidden" name="id" value="<?php echo esc_attr($id) ?>" />
     
    9393                                <table class="form-table">
    9494                                                        <tr class="form-field form-required">
    9595                                                                <th scope="row"><?php _e('Domain') ?></th>
    96                                                                 <td>http://<input name="blog[domain]" type="text" id="domain" value="<?php echo $details->domain ?>" size="33" /></td>
     96                                                                <td>http://<input name="blog[domain]" type="text" id="domain" value="<?php echo esc_attr($details->domain) ?>" size="33" /></td>
    9797                                                        </tr>
    9898                                                        <tr class="form-field form-required">
    9999                                                                <th scope="row"><?php _e('Path') ?></th>
    100100                                                                <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr($details->path) ?>" size="40" style='margin-bottom:5px;' />
    101                                                                 <br /><input type='checkbox' style='width:20px;' name='update_home_url' value='update' <?php if ( get_blog_option( $id, 'siteurl' ) == preg_replace('|/+$|', '', 'http://' . $details->domain . $details->path) || get_blog_option( $id, 'home' ) == preg_replace('|/+$|', '', 'http://' . $details->domain . $details->path) ) echo 'checked="checked"'; ?> /> <?php _e( "Update 'siteurl' and 'home' as well." ); ?></td>
     101                                                                <br /><input type='checkbox' style='width:20px;' name='update_home_url' value='update' <?php if ( get_blog_option( $id, 'siteurl' ) == untrailingslashit( get_blogaddress_by_id($id) ) || get_blog_option( $id, 'home' ) == untrailingslashit( get_blogaddress_by_id($id) ) ) echo 'checked="checked"'; ?> /> <?php _e( "Update 'siteurl' and 'home' as well." ); ?></td>
    102102                                                        </tr>
    103103                                                        <tr class="form-field">
    104104                                                                <th scope="row"><?php _e('Registered') ?></th>
     
    492492                                                                        <?php
    493493                                                                        $actions        = array();
    494494                                                                        $actions[]      = '<a href="ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] . '" class="edit">' . __('Edit') . '</a>';
    495                                                                         $actions[]      = "<a href='{$protocol}{$blog['domain']}{$blog['path']}wp-admin/' class='edit'>" . __('Backend') . '</a>';
     495                                                                        $actions[]      = "<a href='" . get_admin_url($blog['blog_id']) . "' class='edit'>" . __('Backend') . '</a>';
    496496
    497497                                                                        if ( get_blog_status( $blog['blog_id'], "deleted" ) == '1' )
    498498                                                                                $actions[]      = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=activateblog&amp;ref=' . urlencode( $_SERVER['REQUEST_URI'] ) . '&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to activate the blog %s" ), $blogname ) ) . '">' . __('Activate') . '</a>';
     
    511511
    512512                                                                        $actions[]      = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to delete the blog %s" ), $blogname ) ) . '">' . __("Delete") . '</a>';
    513513
    514                                                                         $actions[]      = "<a href='http://{$blog['domain']}{$blog['path']}' rel='permalink'>" . __('Visit') . '</a>';
     514                                                                        $actions[]      = "<a href='" . get_home_url($blog['blog_id']) . "' rel='permalink'>" . __('Visit') . '</a>';
    515515                                                                        ?>
    516516
    517517                                                                        <?php if ( count($actions) ) : ?>
     
    544544                                                                                $blogusers_warning = '';
    545545                                                                                if ( count( $blogusers ) > 5 ) {
    546546                                                                                        $blogusers = array_slice( $blogusers, 0, 5 );
    547                                                                                         $blogusers_warning = __( 'Only showing first 5 users.' ) . ' <a href="' . $protocol . $blog[ 'domain' ] . $blog[ 'path' ] . 'wp-admin/users.php">' . __( 'More' ) . '</a>';
     547                                                                                        $blogusers_warning = __( 'Only showing first 5 users.' ) . ' <a href="' . get_admin_url($blog['blog_id'], 'users.php') . '">' . __( 'More' ) . '</a>';
    548548                                                                                }
    549549                                                                                foreach ( $blogusers as $key => $val )
    550550                                                                                        echo '<a href="user-edit.php?user_id=' . $val->user_id . '">' . $val->user_login . '</a> ('.$val->user_email.')<br />';
  • wp-admin/ms-options.php

     
    3838                        <tr valign="top">
    3939                                <th scope="row"><?php _e('Site Admin Email') ?></th>
    4040                                <td>
    41                                         <input name="admin_email" type="text" id="admin_email" style="width: 95%" value="<?php echo esc_attr( stripslashes( get_site_option('admin_email') ) ) ?>" size="45" />
     41                                        <input name="admin_email" type="text" id="admin_email" style="width: 95%" value="<?php echo esc_attr( get_site_option('admin_email') ) ?>" size="45" />
    4242                                        <br />
    4343                                        <?php printf( __( 'Registration and support mails will come from this address. Make it generic like "support@%s"' ), $current_site->domain ); ?>
    4444                                </td>