Es muy normal que cuando estamos desarrollando con WordPress, necesitemos conocer la URL actual que está visualizando el usuario. Por lo general, nos valdrán los condicionales que nos ofrece WordPress, al estilo de is_page(), is_category()… o de los que ofrece WooCommerce: is_woocommerce(), is_cart(), is_checkout(), etc.
Pero a veces, necesitaremos afinar más. ¿Por qué?
Así que hoy os traigo un trozo de código para este problema: conocer en qué URL está un usuario cuando está visitando tu web. Tenemos dos variaciones, en los casos donde hay un multisitio y en los casos donde no está activado el multisitio, ¿por qué? Porque la función home_url() te devolvería una parte de la URL repetida.
Os dejo una función con todo lo necesario y abajo una breve explicación.
function cod_obtener_url_actual(){
if( is_multisite() ){
$parts = parse_url( home_url() );
$current_uri = "{$parts['scheme']}://{$parts['host']}" . add_query_arg( NULL, NULL );
}
else{
$current_uri = home_url( add_query_arg( NULL, NULL ) );
}
return $current_uri;
} Si os fijáis el funcionamiento es básico, empezamos por lo más sencillo, el caso de que no sea multisitio. La función add_query_arg tiene 3 argumentos, los dos primeros, los arrays de claves y valores de los parámetros a añadir a la URL, son obligatorios. Como no queremos meter parámetro alguno, pasamos dos NULL. El tercer valor no lo usamos para que use como base el valor de $_SERVER[‘REQUEST_URI’], la URL relativa que es la que toma por defecto, así que añadiendo la URL inicial de WordPress tenemos todo al completo: la parte inicial y la relativa, la URL completa.
El caso del multisitio es similar, pero home_url() ofrece una parte de la URL repetida, extraemos la parte que nos interesa, el esquema y el host, y le añadimos parte de URL relativa que nos ofrece add_query_arg().
Con esto tenemos una función que en cualquier caso, multisitio o no, nos ofrecerá el resultado que queremos.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…
Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…
¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…
Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…
Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…
Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…