Me gustaría agregar una variable de consulta a todas las consultas provenientes de un determinado dominio.
Por ejemplo, mydomain.com y proxydomain.com muestran el mismo sitio de WordPress, pero para los usuarios que visitan a través de proxydomain.com, me gustaría poder manejar sus consultas de manera diferente.
Además, me gustaría aplicar algunos estilos CSS diferentes para los visitantes que ingresan a través de proxydomain.com.
Estaba pensando que podría verificar query_var y aplicar clases basadas en la presencia de esa variable.
y cual es la pregunta exactamente?
– mirza
17 abr 2015 a las 23:08
NO es lo que pediste (y como tal, lo estoy convirtiendo en un comentario en lugar de una respuesta), pero podrías usar fácilmente $_SERVER[‘REMOTE_HOST’] para obtener las solicitudes y ejecutar comparaciones sobre eso.
– josh.chavanne
17 abr 2015 a las 23:08
es decir, si ($_SERVIDOR[‘REMOTE_HOST’]===’proxydomain.com’){ //hacer algunas cosas específicas del dominio proxy o asignar una variable}
– josh.chavanne
17 de abril de 2015 a las 23:09
d79
Este es el código para agregar a su functions.php expediente:
Agrega el dominio desinfectado de su sitio (es decir, mydomain-com o proxydomain-com) como clase de body etiqueta de sus páginas, para que pueda apuntar a la clase relativa para estilos personalizados.
Actualizar
Para las consultas, podría agregar una función nuevamente en functions.php me gusta:
function is_proxydomain() {
return 'proxydomain.com' == $_SERVER['SERVER_NAME'];
}
Y luego úselo cuando sea necesario en una consulta:
if( is_proxydomain() ) {
$args = array(
// arguments for proxydomain.com
);
} else {
$args = array(
// arguments for mydomain.com
);
}
$query = new WP_Query( $args );
apartidista
Me gusta la respuesta de d79 para la primera parte.
Para las consultas, creo que sería mejor extender la clase WP_Query (es decir, WP_Query_Custom) y tener una copia para cada dominio. Luego, puede cargar el archivo que necesita según el dominio en el archivo functions.php, por lo que no necesita cambiar en el futuro sus llamadas en todos los lugares donde usa WP_Query_Custom, incluso si necesita agregar más dominios y diferentes versiones de WP_Query_Personalizado.
//in functions.php
$mydomain = str_replace('.', '_', $_SERVER['SERVER_NAME']);
require_once("path/to/my/classes/$mydomain/WP_Query_Custom.php");
//In each path/to/my/classes/$mydomain/WP_Query_Custom.php
class WP_Query_Custom extends WP_Query {
function __construct( $args = array() ) {
// Force these args
$args = array_merge( $args, array(
'post_type' => 'my_custom_post_type',
'posts_per_page' => -1, // Turn off paging
'no_found_rows' => true // Optimize query for no paging
) );
add_filter( 'posts_where', array( $this, 'posts_where' ) );
parent::__construct( $args );
// Make sure these filters don't affect any other queries
remove_filter( 'posts_where', array( $this, 'posts_where' ) );
}
function posts_where( $sql ) {
global $wpdb;
return $sql . " AND $wpdb->term_taxonomy.taxonomy = 'my_taxonomy'";
}
}
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
y cual es la pregunta exactamente?
– mirza
17 abr 2015 a las 23:08
NO es lo que pediste (y como tal, lo estoy convirtiendo en un comentario en lugar de una respuesta), pero podrías usar fácilmente $_SERVER[‘REMOTE_HOST’] para obtener las solicitudes y ejecutar comparaciones sobre eso.
– josh.chavanne
17 abr 2015 a las 23:08
es decir, si ($_SERVIDOR[‘REMOTE_HOST’]===’proxydomain.com’){ //hacer algunas cosas específicas del dominio proxy o asignar una variable}
– josh.chavanne
17 de abril de 2015 a las 23:09