(zuletzt bearbeitet )

Aus aktuellem Anlass - weil eines meiner Plugins, das diese Arbeit eigentlich erledigen sollte, dies nicht richtig tut 😁 - gibt's mal wieder einen Codeschnipsel.

Mit diesem lassen sich in WordPress sog. "Self-Pings", Ping- und Trackbacks des Blogs zu sich selbst, verhindern.

Der folgende Code achtet zusätzlich darauf, dass auch die Subdomain "m" gesperrt wird.

Eingefügt werden sollte er in die Datei functions.php im Ordner des Templates (normalerweise: /wp-content/themes/Template-Name/).

Beispiel: Liegt der WordPress-Blog auf der Domain http://(www.)servaholics.de, so werden keine Pings von Seiten auf den Domains http://(www.)servaholics.de und http://m.servaholics.de gespeichert.

Achtung: Für Blogs, die bereits auf einer Subdomain liegen, funktioniert dieser Codeschnipsel nicht - er kann jedoch leicht angepasst werden. 😉

Werbung

Werbeblocker aktiv?

Vermutlich aufgrund eines Werbeblockers kann an dieser Stelle leider keine Werbung angezeigt werden. Als Blog ist diese Website jedoch darauf angewiesen, um diverse Kosten abdecken zu können.

Vielleicht möchtest du Servaholics ja in deinem Werbeblocker als Ausnahme hinzufügen und so unterstützen? Das wäre jedenfalls sehr nett! :-)

  1. <?php
  2. function no_self_ping(&$links) {
  3. 	// Get WordPress's home option
  4. 	$home = get_option('home');
  5.  
  6. 	// Remove the last slash if it exists
  7. 	if (substr($home, -1) == "/") {
  8. 		$home = substr($home, 0, -1);
  9. 	}	
  10.  
  11. 	if (0 === strpos($home, 'https://')) {
  12. 		$home = str_replace("https://www.", "https://", $home);
  13. 		$home_www = str_replace("https://", "https://www.", $home);
  14. 		$home_mobile = str_replace("https://", "https://m.", $home);
  15. 	} else {
  16. 		$home = str_replace("http://www.", "http://", $home);
  17. 		$home_www = str_replace("http://", "http://www.", $home);
  18. 		$home_mobile = str_replace("http://", "http://m.", $home);
  19. 	}
  20.  
  21. 	foreach($links as $l => $link) {
  22. 		if (0 === strpos($link, $home) OR 0 === strpos($link, $home_www) OR 0 === strpos($link, $home_mobile)) {
  23. 			unset($links[$l]);
  24. 		}
  25. 	}
  26. }
  27. add_action('pre_ping', 'no_self_ping');
  28. ?>

2 Kommentare zu "WordPress: Eigen-Pingbacks/-Trackbacks ("Self-Pings") verhindern" (RSS)

21. Februar 2015 13:54 UhrAntworten#
Tobias
Kleiner Tipp: Das funktioniert auch nicht mit Blogs, die über SSL (https://...) ausgeliefert werden.
21. Februar 2015 14:02 UhrAntworten#
Chris (Administrator)
Hallo Tobias,

danke für den Hinweis, ich habe den Codeschnipsel angepasst. Für Websites, die komplett mit HTTPS arbeiten, funktioniert er nun. 🙂

Viele Grüße, Chris

Jetzt bist du dran: Was denkst du?

Bitte beachte: Auch wenn das Angeben einer E-Mail-Adresse optional ist, so bist du doch nicht vollständig anonym, denn u.a. deine IP-Adresse wird mit dem Absenden dieses Formulars gespeichert.



Tastenkürzel


Überall

j: Älterer Artikel

k: Neuerer Artikel

s: Suchen

h: Hilfe


Auf Artikel-Seiten

t: Auf Twitter posten

f: Auf Facebook posten

g: Auf Google+ posten