无法通过WiFi网络访问WP站点

时间:2012-06-14 作者:ilyo

我正在制作一个移动站点,我正在使用主计算机的IP地址从iphone连接到它10.0.0.1/wp

对于普通站点,它工作得很好,但我得到的WP站点是从CSS、JS和图像中剥离出来的,只有纯文本。在mac和iphone模拟器上运行良好。

它是已知的和可配置的吗?

2 个回复
最合适的回答,由SO网友:Lafif Astahdziq 整理而成

是的,因为wordpress使用数据库中的服务器地址get_option(\'siteurl\')get_option(\'home\'), 因此,如果您从IP地址访问wordpress,资产(js和css)仍将从localhost/wp/ 这意味着127.0.0.1 不是10.0.0.1

获取wordpress动态url的简单方法是在wp配置上定义site\\u url和home\\u url。php函数,用于解析请求并获取wordpress的正确根url

尝试将此脚本添加到

/** Absolute path to the WordPress directory. */ if ( !defined(\'ABSPATH\') ) define(\'ABSPATH\', dirname(__FILE__) . \'/\');

/**
 * get home url from absolute path
 * @return string url to main site
 * [email protected]
 */
function get_dynamic_home_url(){
    $base_dir  = ABSPATH; // Absolute path
    $doc_root  = preg_replace("!${_SERVER[\'SCRIPT_NAME\']}$!", \'\', $_SERVER[\'SCRIPT_FILENAME\']);
    $base_url  = preg_replace("!^${doc_root}!", \'\', $base_dir);
    $protocol  = empty($_SERVER[\'HTTPS\']) ? \'http\' : \'https\';
    $port      = $_SERVER[\'SERVER_PORT\'];
    $disp_port = ($protocol == \'http\' && $port == 80 || $protocol == \'https\' && $port == 443) ? \'\' : ":$port";
    $domain    = $_SERVER[\'SERVER_NAME\'];
    $home_url  = "${protocol}://${domain}${disp_port}${base_url}";

    return $home_url;
}
$url = get_dynamic_home_url();
define(\'WP_SITEURL\', $url);
define(\'WP_HOME\', $url);

SO网友:fuxia

内部选项之间可能存在冲突\'home\'\'siteurl\' 以及每个纯IP地址的访问权限。WordPress不仅仅使用任何服务器名称,这里可能会有一些冗余。

您可以尝试通过在wp-config.php:

define( \'WP_HOME\', \'http://\' . $_SERVER[\'HTTP_HOST\'] );
// or
// define( \'WP_HOME\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/wp\' );

define( \'WP_SITEURL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] );
// or
// define( \'WP_SITEURL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/wp\' );
这些常量应优于数据库中的选项。

结束