web-dev-qa-db-fra.com

Remplacer les wp_siteurl et wp_home ne fonctionnent pas

J'ai créé un site WordPress et nommez le nom d'hôte comme x.co.uk, x.com, x.in ...

Dans wp-option, indiquez l'URL du site et de la maison sous la forme x.co.uk. Je veux dynamiquement pour charger l'autre nom d'hôte aussi.

Donc, définir dynamiquement WP_SITEURL, WP_HOME, je remplace le wp-config comme

define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] );
define('WP_HOME',    'http://' . $_SERVER['SERVER_NAME'] );

mais quand j'appelle home_url (), il retourne toujours x.co.uk hostname

Merci d'avance

5
Tamil Selvan C

Donc, définir dynamiquement WP_SITEURL, WP_HOME, je remplace le wp-config comme

    define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] );
    define('WP_HOME',    'http://' . $_SERVER['SERVER_NAME'] );

mais quand j'appelle home_url (), il retourne toujours x.co.uk hostname

home_url() n'utilise aucune constante de WordPress. Il utilise un appel à get_option( 'home' ). Pour utiliser WP_HOME à la place, court-circuitez get_option():

add_filter( 'pre_option_home', 'wpse_114486_change_get_option_home' );
/**
 * Change get_option( 'home' ) and any functions that rely on it to use
 * the value of the WP_HOME constant.
 *
 * This is not fully tested. Many WordPress functions depend on the value of
 * get_option( 'home' ). The ramifications of this filter should be tested
 * thoroughly.
 */
function wpse_114486_change_get_option_home( $option ) {

    if ( defined ( 'WP_HOME' ) )
        return WP_HOME;

    return false;
}
2
Charles Clarkson