Skocz do zawartości

[PHP] - automatyczne nofollow dla starych linków


Jastrzab

Rekomendowane odpowiedzi

Chciałbym dodać w blogu na WP do starych linków nofollow, powiedzmy tam od któregoś postu albo od daty i mam wtyczkę external-nofollow, ale ona dodaje do wszystkich, a ja chciałbym dodać tylko do starych. Myślałem żeby dodać do niej warunek do pierwszego warunku if:

&&(get_the_ID()<300)

ale nie działa. Wyskakuje Parse error: syntax error, unexpected T_IS_IDENTICAL in /wp-content/plugins/external-nofollow/external-nofollow.php on line 27

Może ma ktoś jakiś pomysł na takie coś?

Kod wtyczki:

if (!class_exists('ExternalNofollow')) {
   class ExternalNofollow
   {
		  static function init()
		  {
				 add_filter('the_content', array(__CLASS__, 'nofollow'));
		  }

		  function nofollow($content)
		  {
				 //return stripslashes(wp_rel_nofollow($content));

				 return preg_replace_callback('/<a[^>]+/', array(__CLASS__, 'callback'), $content);
		  }

		  function callback($matches)
		  {
				 $link = $matches[0];
				 $site_link = get_bloginfo('url');

				 if (strpos($link, 'rel') === false) {
						$link = preg_replace("%(href=\S(?!$site_link))%i", 'rel="nofollow" $1', $link);
				 } elseif (preg_match("%href=\S(?!$site_link)%i", $link)) {
						$link = preg_replace('/rel=\S(?!nofollow)\S*/i', 'rel="nofollow"', $link);
				 }

				 return $link;
		  }
   }

   ExternalNofollow::init();
}

Odnośnik do komentarza
Udostępnij na innych stronach

Tak zwraca ID, można też użyć w wp funkcji the_ID(), właściwie nie wiem czym się różnią. Dodawałem to w pierwszej linii, ale kurcze nie wiem czy to jest w ogóle dobry kierunek. W sumie ID zwraca chyba tylko jak funkcja jest wywoływana w pojedynczym wpisie i nie wiem, czy to da się pogodzić przy zastosowaniu wtyczki, bo do końca nie rozumiem jej kodu php.

Linia 27

Tam powinienem to wstawić? Nie bardzo wiem jak.

if (get_the_ID()<300) return $link;

??

Odnośnik do komentarza
Udostępnij na innych stronach

Np. coś takiego

function nofollow($content)
{
				 //return stripslashes(wp_rel_nofollow($content));					 
				 return (get_the_ID() > 300) ? $content : preg_replace_callback('/<a[^>]+/', array(__CLASS__, 'callback'), $content);
}

Webmastering, kodowanie & programowanie

Więcej informacji na moim profilu

Zapraszam na PW

Odnośnik do komentarza
Udostępnij na innych stronach

Działa perfekcyjnie :), dzięki

Próbowałem jeszcze dopisać reguły wykluczające

if (strpos($link, 'rel') === false&&(the_author_meta('ID') == 3) === false) {

ale też mi nie działa, dobrze to skonstruowałem? (chyba nie jak nie działa ;))

the_author_meta('ID') wywołuje liczbę - id

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności