web-dev-qa-db-fra.com

Fonctions.php code qui ne fonctionne que sur localhost?

Je voudrais exécuter add_action dans functions.php uniquement si le thème est en cours de chargement depuis mon site de développement localhost. Comment pourrais-je faire en sorte que cela ne fonctionne que sur localhost?

function livereload(){
?>
    // mycode
 <?php
}
add_action('headway_body_close', 'livereload');
4
snowliondev

C'est la bonne réponse

if ( $_SERVER["SERVER_ADDR"] == '127.0.0.1' ) {
    function livereload(){
    ?>
        // mycode
     <?php
    }
    add_action('headway_body_close', 'livereload');
}
4
Tommixoft

Un moyen plutôt sûr consiste à marquer votre environnement local en tant que tel dans votre wp-config.php local.

Exemple:

// wp-config.php
define( 'WPSE54453_IS_LOCAL_SERVER', TRUE );

// functions.php
defined( 'WPSE54453_IS_LOCAL_SERVER' ) 
    && WPSE54453_IS_LOCAL_SERVER 
    && add_action( 'headway_body_close', 'livereload' );

C'est aussi une question de lisibilité. Vous pouvez voir immédiatement ce que le code fait.

4
fuxia

Le moyen le plus simple de vérifier l'adresse IP d'un utilisateur. S'il est égal à 127.0.0.1, alors cet utilisateur exécutant le site sur localhost.

if ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) {
    function livereload(){
    ?>
        // mycode
     <?php
    }
    add_action('headway_body_close', 'livereload');
}

UPDATE: ou comme mentionné @Tommixoft, vous pouvez vérifier l'adresse IP du serveur.

if ( $_SERVER['SERVER_ADDR'] == '127.0.0.1' ) {
    function livereload(){
    ?>
        // mycode
     <?php
    }
    add_action('headway_body_close', 'livereload');
}
1
Eugene Manuilov