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.RedSys aparte de los pagos normales, llamados autorizaciones, acepta una variedad de operaciones: desde autorizaciones…
WooCommerce permite ordenar los productos de una forma nativa, para poder presentar primero los que…
Cada vez que hay una actualización grande del núcleo WordPress, por defecto WordPress te instala…
Una pantalla LCD es una pantalla delgada y hecha de cristal líquido. Se usa en…
De todos los plugins que existen para Gravity Forms, que son numerosos porque la propia…
Un CMS, como WordPress, facilita la creación y gestión de contenido en la web, sin…