Cómo mantener variables en enlaces entrantes desde banners en Wordpress

  • Autor Autor Javier Marín
  • Fecha de inicio Fecha de inicio
Javier Marín

Javier Marín

1
Ni
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Buenas noches a todos, estoy haciendo unas pruebas de poner unos banners en unos sitios web y los enlaces que entran a mi web (bajo el CMS de Wordpress) a través de esos banners son: "http://misitio.com/?ad=001" teniendo cada banner una variable diferente.

Lo que me gustaría conseguir ahora, que llevo todo el día intentándolo es que cuando una usuario entre a mi web con la variable "?ad=001", todas las URLs del sitio al hacer click lo lleve al destino de la URL, pero manteniendo la variable, es decir, si un usuario entra a través del banner a mi web y hace click en un enlace que su destino sea "http://misitio.com/pagina-de-ejemplo/" que automáticamente esa URL sea "http://misitio.com/pagina-de-ejemplo/?ad=001"

Espero haberme explicado bien y que me puedan ayudar 🙂

Un saludo y gracias de antemano a todos :encouragement:
 
Con este código lo puedes hacer, pegalo en el functions.php de tu theme o crea un plugin, solo reemplazara los enlaces si esta en una entrada, ten en cuenta que agregara ?ad al final de cualquier atributo "href" (dentro del contenido de la entrada), incluyendo imágenes que contengan enlaces. No le agregue validación que haga x cosa si lo que te envian por ?ad no es un numero, pero puedes hacerlo. :encouragement:, solo no quites esc_html para que no vayan a querer insertarte código. :encouragement:
PHP:
function emk_get_query($content){
	if (is_single()) {
		if (isset($_GET['ad'])){
			$ad="?ad=". esc_html($_GET['ad']);
			preg_match_all('/href=\"(.*?)\"/is', $content, $enl);
		 	$emodi=array();
		 	$num=0;
		 	$array = array_unique($enl[1]);
		 	foreach ($array as $key) {
			 	$emodi[$num]=$key.$ad;
			 	$num++;
		 	}
		 	$content=str_replace($array, $emodi, $content);

		}
		 
		 
		 return $content;
	 }
}
add_filter( 'the_content', 'emk_get_query');
 
Última edición:
Con este código lo puedes hacer, pegalo en el functions.php de tu theme o crea un plugin, solo reemplazara los enlaces si esta en una entrada, ten en cuenta que agregara ?ad al final de cualquier atributo "href" (dentro del contenido de la entrada), incluyendo imágenes que contengan enlaces. No le agregue validación que haga x cosa si lo que te envian por ?ad no es un numero, pero puedes hacerlo. :encouragement:, solo no quites esc_html para que no vayan a querer insertarte código. :encouragement:
PHP:
function emk_get_query($content){
    if (is_single()) {
        if (isset($_GET['ad'])){
            $ad="?ad=". esc_html($_GET['ad']);
            preg_match_all('/href=\"(.*?)\"/is', $content, $enl);
             $emodi=array();
             $num=0;
             $array = array_unique($enl[1]);
             foreach ($array as $key) {
                 $emodi[$num]=$key.$ad;
                 $num++;
             }
             $content=str_replace($array, $emodi, $content);

        }
         
         
         return $content;
     }
}
add_filter( 'the_content', 'emk_get_query');

Hola, gracias por tu respuesta 🙂 Lo he probado y va bien encaminado el código, lo que pasa que pone la variable en la raiz del dominio, por ejemplo: si en el post hay un enlace hacia "http://misitio.com/articulo-1/", convierte el enlace a "http://misitio.com/?add=25articulo-1/" y otro error también es que con las imágenes, ya que hace lo mismo y le añade la variable al principio del dominio y dan error.

Si me dices como hacer para arreglar esos dos fallitos te lo estaré eternamente agradecido jeje. Un saludo y gracias nuevamente :encouragement:
 
Hola, gracias por tu respuesta 🙂 Lo he probado y va bien encaminado el código, lo que pasa que pone la variable en la raiz del dominio, por ejemplo: si en el post hay un enlace hacia "http://misitio.com/articulo-1/", convierte el enlace a "http://misitio.com/?add=25articulo-1/" y otro error también es que con las imágenes, ya que hace lo mismo y le añade la variable al principio del dominio y dan error.

Si me dices como hacer para arreglar esos dos fallitos te lo estaré eternamente agradecido jeje. Un saludo y gracias nuevamente :encouragement:

Necesito ver la estructura de los enlaces de la web o puedes crear una expresión regular que se adapte a ellos.
 
Última edición:
Atrás
Arriba