web-dev-qa-db-ja.com

Localhostでしか動作しないFunctions.phpコード?

私のlocalhost開発サイトからテーマがロードされている場合のみ、functions.phpでadd_actionを実行したいと思います。これをlocalhostでのみ実行するにはどうすればよいですか?

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

これは正解です

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

どちらかといえば安全な方法は、ローカルのwp-config.phpでローカルの環境をそのようにマークすることです。

例:

// 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' );

これも読みやすさの問題です。あなたはすぐにコードが何をするのか見ることができます。

4
fuxia

ユーザーのIPアドレスを確認するのが最も簡単な方法です。それが127.0.0.1に等しい場合は、このユーザーはlocalhostでサイトを実行しています。

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

更新: または@Tommixoftに記載されているように、サーバーのIPアドレスを確認できます。

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