Como manter variáveis em links de entrada vindos de banners no Wordpress

  • Autor Autor Javier Marín
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Javier Marín

Javier Marín

1
Ni
Verificado
Verificación en dos pasos activada
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:
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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 edição:
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 edição:
Voltar
Topo