Uno de los problemas a los que nos enfrentamos al desarrollar en responsive es que en local es difícil acceder a nuestro localhost desde móviles y tablets. Aunque con unos sencillos pasos podremos acceder sin problemas.
Primero tendremos que modificar nuestro vhosts de Apache para que acepte peticiones desde la red, añadiendo lo siguiente:
<VirtualHost [IP de nuestro ordenador en la red]>
ServerAdmin [IP de nuestro ordenador en la red]
DocumentRoot "[path a nuestro WP]"
ServerName [IP de nuestro ordenador en la red]
LogLevel debug
ErrorLog "logs/wordpress-error.log"
CustomLog "logs/wordpress-access.log" combined
</VirtualHost>
A continuación tenemos que modificar el wp-config.php para decirle el WP_SITEURL y el WP_HOME que variará si se accede desde nuestro ordenador o desde un móvil o tablet.
// Hay que ver si la IP desde la que accedemos es del rango de nuestra red que normalmente suele ser 192.168.1.x
if(preg_match('#^192\.168\.1\.\d+#', $_SERVER['HTTP_HOST'])) {
define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST'].'/');
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST'].'/');
}
Y ya por último nos creamos un plugin que sustituirá toda referencia a la URL de local por la correspondiente que se encuentre en el contenido de los posts y que activaremos cuando trabajemos en local, o bien lo metemos en el functions.php, pero esto sería guarrear el código:
if(preg_match('#^192\.168\.1\.\d+#', $_SERVER['REMOTE_ADDR'])) {
function replace_domain($buffer) {
// modify buffer here, and then return the updated code
return str_replace('http://localhost/', 'http://'.$_SERVER['HTTP_HOST'].'/', $buffer);
}
function buffer_start() { ob_start("replace_domain"); }
function buffer_end() { ob_end_flush(); }
add_action('wp', 'buffer_start');
add_action('wp_footer', 'buffer_end');
}
Tienes el plugin disponible en mi repositorio de GitHub