Link-uri externe in tab-uri noi

  În articolul quickies de astăzi, de pe blogul lui Vali Petcu acesta făcea trimitere către un articol scris de Alexandru Negrea în ceea ce privește creșterea numărului de afișări pe blog. Nu voi rediscuta subiectul ci voi încerca să ofer o soluție mai simplă în locul plugin-urilor menționate de Alex.

Nu sunt un adept al plugin-urilor și încerc să reduc numărul lor cu cât posibil în favoarea vitezei blogului înlocuindu-le cu coduri implementate direct în fișierele temei.

  Dacă sunteți începător nu uitați să faceți o copie a fișierului „functions.php” înainte de a face modificări asupra acestuia !

Deschiderea link-urilor externe într-o pagină diferită/un tab nou se poate face prin adăugarea codului următor în fișierul „functions.php” după eticheta  „< ?php” dar înainte de eticheta „?>„.

add_action('wp_head', 'open_external_links_in_new_window');

function open_external_links_in_new_window()
{
  echo "<script type=\"text/javascript\">//<![CDATA[";
  $blogdomain = parse_url(get_settings('home'));
  echo "
	function CreateNewWindow() {
		if (!document.links) {
			document.links = document.getElementsByTagName('a');
		}

		for (var t=0; t<document.links.length; t++) {
			var all_links = document.links[t];
			if (all_links.href.search(/^http/) != -1) { // Catches both http and https
		  	if (all_links.href.search('/".$blogdomain['host']."/') == -1) {
		    	// all_links.setAttribute('target', '_blank');
		    	document.links[t].setAttribute('href', 'javascript:window.open(\\''+all_links.href+'\\'); void(0);');
		    	document.links[t].setAttribute('target', '');
		    }
		  }
		}
	}

	function addWinLoadEvent(func)
	{
		var oldonload = window.onload;
		if (typeof window.onload != 'function'){
			window.onload = func;
		} else {
			window.onload = function(){
				oldonload();
				func();
			}
		}
	}

	addWinLoadEvent(CreateNewWindow);
	";

  echo "//]]></script>\n\n";
}

  Odată implementat acest cod link-urile contextuale respectiv cele din comentarii vor fi deschise într-o pagină diferită, acest procedeu poate scădea numărul de afișări însă avem garanția că vizitatorul nu părăsește pagina blogului.

Orice întrebare este binevenită !

Etichete: , ,

3 comentarii

  1. O întrebare: tu ai scris funcția de mai sus?

    Și apropo: vezi că plugin-ul ”Subscribe to comments” bifează automat ”Anuntă-mă când apar comentarii noi.” și poate fi considerat de mulți, spam 🙂

Lasă un răspuns

Adresa de email nu va fi publicată. Câmpurile marcate cu * sunt obligatorii.