Forzar a WordPress a ignorar el parámetro w url

2 minutos de lectura

Digamos, tengo una instalación de WordPress ejecutándose en example.com y tengo la siguiente URL

http://ejemplo.com/blah?w=100

Ahora, quiero que WordPress ignore la parte w=100 porque, cada vez que paso un argumento numérico a w, WordPress me redirige a la página única, asumo que esto tiene algo que ver con los archivos adjuntos.

No puedo cambiar el nombre de w a nada más porque está fuera de mi control, mi sitio tiene que funcionar con una aplicación de terceros que no me permitirá modificar esta condición.

probé esto

add_filter('request', array($this,'on_request'));
function on_request($vars){
  unset($vars['w']);
  return $vars;
}

Y no funcionaría. ¿Algún consejo sobre esto, por favor?

Tendría cuidado con este enfoque. los w parámetro es un Variable de consulta reservada de WordPress. El parámetro se usa para encontrar el número de semana en función de la opción start_of_week en la configuración y probablemente afecta a un montón de consultas.

Si no puede cambiar el parámetro como mencionó, si es posible, al menos verificaría si la solicitud proviene de ese proveedor externo y solo luego desactivaría el parámetro.

  • No sabía que es una variable de consulta reservada, supuse que tenía algo que ver con el cambio de tamaño de las imágenes y w representaba el ancho, ya que solo acepta valores numéricos. Seguiré tus instrucciones al respecto, muchas gracias.

    – aghoshx

    28/09/2013 a las 17:20

  • Para cualquiera que esté mirando esto ahora, se usa durante la semana.

    – aghoshx

    7 de marzo de 2020 a las 7:07

avatar de usuario
aghoshx

Está bien, lo resolví yo mismo.

add_filter( 'request', 'alter_the_query' );
function alter_the_query( $request ) {

    unset($request['w']);
    return $request;
}

  • ¿Por qué es “$dummy_query = new WP_Query(); // la consulta no se ejecuta si no pasamos ninguna consulta vars $dummy_query->parse_query( $request );” ¿necesario?

    – John Smith

    10 de mayo de 2019 a las 11:19

  • No estoy seguro de entender la pregunta. ¿Está preguntando por qué se requiere esa línea?

    – aghoshx

    9 de julio de 2019 a las 9:42

  • sí, exactamente, no parece hacer nada

    – John Smith

    9 de julio de 2019 a las 15:36

  • Está creando una nueva instancia de WP_Query.

    – aghoshx

    7 de marzo de 2020 a las 7:06

  • Si solo desea que esto se haga para un subconjunto de su sitio web, envuelva el unset Comando en una declaración if: esto significa que WordPress aún puede usarlo cuando corresponda.

    – Ollie

    24 de agosto de 2020 a las 2:59

¿Ha sido útil esta solución?