Das Putzlowitsch Test- und SEO-Blog

Das Siebtlingsgeburt-Ranking im Blog mit meinem Plugin einbinden

Gestern hatte ich ja bereits die maschinenlesbaren Daten von ranking-123.de vorgestellt. Ihr könnt diese Daten selbst nutzen und auswerten (wenn Ihr es könnt :-). Oder Ihr benutzt einfach mein WordPress-Plugin, das ich hier kurz vorstellen will.

Siebtlingsgeburt Top-100

123 Top-100 Plugin

Das Plugin besteht im wesentlichen aus zwei Funktionen.

Die erste Funktion agn_top100_read_data ist für das Abholen der Daten im JSON-Format zuständig. Hier habe ich etwas mehr Aufwand betrieben, um unnötige Requests und Datenübertragungen zu vermeiden. Die Daten werden lokal auf dem Server der WordPress-Installation im Verzeichnis wp-content/uploads gespeichert. Dieses muß daher von WordPress beschreibbar sein, damit das Caching funktioniert.

Die zweite Funktion agn_top100_shortcode implementiert einen WordPress-Shortcode, mit dem man sich die gewünschten Daten im Artikel oder auf der Seite ausgeben lassen kann.

Im einfachsten Fall sieht das dann so aus:
...
Hier findet ihr die aktuelle Siebtlingsgeburt Top-100:
<table class='chart-list'>[agn_top100 nam='siebtlingsgeburt']</table>
...

Per Voreinstellung wird die Liste als Tabelle ausgegeben, allerdings ohne Table-Tags. Die müßt Ihr selbst drumrum packen. Das hat den Vorteil, daß Ihr der Tabelle einfach eine CSS-Klasse oder sonstige Formatierungen mitgeben könnt.

In der Voreinstellung ergibt sich damit eine Tabelle wie auf dieser Beispielseite (ohne Grafik). Die Platzierung wird einfach durchnummeriert, vor der URL steht ggf. ein Symbol für den Ergebnistyp, hinter der URL folgt ein Link-Symbol mit einem (nofollow!) Link zur Seite. URLs, die Länger als 70 Zeichen sind, werden am Ende mit … verkürzt.

Über Shortcode-Parameter kann die Ausgabe angepaßt werden. Folgende Einstellungen sind möglich:

  • nam – Name der Daten
    Vorgabe: ‚xovilichter‚, hier also siebtlingsgeburt eintragen :-)
  • ret – Was soll der Shortcode zurückgeben?
    Vorgabe: ‚rnk‚, mögliche Werte

    • rnk – Ranking Tabelle/Liste (siehe lit)
    • upd – Datum und Zeit des letzten Updates (siehe dtf)
    • cnt – Anzahl der gefundenen Treffer insgesamt
  • max – Maximal Anzahl auszugebender Treffer
    Vorgabe: ‚100‚, eine Zahl zwischen 1 und 123
  • dtf – Ausgabeformat des letzten Updates (siehe ret:upd)
    Vorgabe: ‚‚d.m.Y H:i‘‚, Format entsprechend PHP-Date-Funktion
  • lit – Listentyp: Tabelle oder Liste?
    Vorgabe: ‚tab‚, mögliche Werte

    • tab – Tabelle (table)
    • lst – Liste (ol)
  • cut – Anzahl Zeichen, ab der eine URL verkürzt wird
    Vorgabe: ‚70‚, eine Zahl zwischen 0 (keine Verkürzung) und größer
  • sym – Typ-Symbol vor der URL anzeigen
    Vorgabe: ‚1‚, zum ausschalten ‚0‘ verwenden
  • lnk – Link am Ende der URL ausgeben
    Vorgabe: ‚1‚, zum ausschalten ‚0‘ verwenden

Hier ein paar Beispiele:
...
<ol>[agn_top100 nam='siebtlingsgeburt' max='33' lit='lst' sym='0']</ol>
...

Gibt maximal 33 Einträge als HTML-Liste (OL) ohne vorangestelltem Typ-Symbol aus.

...
Top-100 vom [agn_top100 nam='siebtlingsgeburt' ret='upd' dtf='l, d.m.Y H:i'] Uhr
...

Gibt den Zeitpunkt des letzten Updates formatiert aus.

Technische Voraussetzungen und Download

Technische Voraussetzungen:

  • WordPress 3.8 oder höher
  • PHP 5.2 oder höher mit curl-Funktion
  • Verzeichnis wp-content/uploads muß von WordPress beschreibbar sein

Download Version 0.18: 123 Top-100 Plugin

Falls es Unklarheiten oder Fragen gibt, einfach fragen. :-)

Ein Kommentar »

Heiße Links und kalter Kaffee, Bildersuche aufgewärmt – Mein Vortrag auf der SEO-Campixx 2016

SEO-Campixx 2016

Letztes Wochenende war die SEO-Campixx 2016 und ich habe am Sonntag um 16:30 Uhr einen Vortrag mit dem Titel „Heiße Links und kalter Kaffee, Bildersuche aufgewärmt“ gehalten.

Wie versprochen, gibt es hier nun die Folien als PDF und weitere Links zu den im Vortrag genannten Tools und Webseiten:

Falls mir noch etwas einfällt, wird die Liste ergänzt.

2 Kommentare »

Google Bilder-Liste – ein neues Bookmarklet für die Google Bildersuche

Bookmarklets

Die Bookmarklets sind feine Sachen, denn man kann tolle Dinge damit machen. :-)

Ein Bookmarklet ist ein Browser-Lesezeichen, welches aber nicht die URL einer Webseite speichert, sondern Javascript-Code. Dieser kann dann auf eine gerade im Browserfenster angezeigte Webseite losgelassen werden.

Das Bookmarklet hat Zugriff auf den kompletten Seiteninhalt, kann diesen verändern oder Daten extrahieren und z.B. in einem neuen Fenster darstellen.

Vor einiger Zeit hatte ich bereits mal ein Bookmarklet angepaßt, war nur aber nun nicht mehr ganz damit zufrieden. Besonders die Konfiguration über einen einfachen Eingabedialog waren mir zu wenig komfortabel.

So habe ich eine neue Version des Bookmarklets entwickelt, mit anderere Darstellung, mehr Optionen und einer Exportfunktion.

Google Bilder-Liste

Bookmarklet – Google Bilder-Liste (1.3)

So sieht die Trefferliste der Google-Bildersuche für Brötchen nach Aufruf des Bookmarklets aus. Die Ausgabe ist gefiltert, Google findet natürlich mehr Brötchen-Bilder als nur drei. :-)

Die Liste

Die Tabelle zeigt in der ersten Spalte das Thumbnail und die Bildgröße, in der zweiten die Position in der Bildersuche an. In der dritten Spalte findet man untereinander Bild-Id, Bild-URL und Seiten-URL (Referenz). Die Kästchen davor geben durch verschieden Farben Auskunft über den Status.

Für Bild-ID, Bild-URL und Seiten-URL bedeutet grün, daß es sich um ein eigenes Bild bzw. eine eigene Seite handelt. Ist das Kästchen vor der Seiten-URL gelb, kommt der Treffer von einer erlaubten Domain, die aber keine eigene ist.

Das rote Kästchen zeigt einen Hotlink bzw. eine Bildkopie an. Das Bild ist also ein eigenes Bild (ID oder Bild-URL), die Seite ist jedoch nicht in der Liste der eigenen oder erlaubten Domains zu finden.

Ein Klick auf eines der Kästchen zeigt folgendes an:

Bild-Id: Google Suche mit weiteren Seiten, die das Bild verwenden
Bild-URL: das Bild
Seiten-URL: die Seite mit dem Bild

Die Links hinter der Bild ID rufen die jeweilige Google-Suche für das Bild auf.

Die Optionen

Im oberen Berich kann man Ausgabe-Filter festlegen. Folgende Optionen sind für die Anzeige möglich:

(●) Alle Bilder
alle Bilder, die in der Google-Trefferliste vorhanden sind
(●) Eigene Bilder
Bilder, die in der Liste der eigenen Domains oder bei den gespeicherten Bild-IDs zu finden sind
(●) Eigene Seiten
Seiten, die in der Liste der eigenen Domains zu finden sind
(●) Hotlinks/Kopien
Eigene Bilder, bei denen die Seite nicht in der Liste der eigenen oder erlaubten Domains zu finden ist
(●) Gefilterte Seiten
Seite, die in der Domain-Filter Liste zu finden sind

Die Option [x] Filter negieren dreht die Logik um. Das beutet z.B. für die Option Eigene Seiten, daß nun alle Seiten angezeigt werden, die nicht in der Liste der eigenen Domains zu finden sind.

Mit der Option [x] Nur ein Treffer pro Domain wird nur der jeweils erste Treffer einer Domain angezeigt.

Die Aktionen

Einzige Aktion ist im Moment der Download der Bilderliste als CSV-Datei mit CSV Download. Die Liste wird so ausgegeben, wie sie gerade angezeigt wird. Die Felder sind mit Semikoln getrennt. Damit können die Daten einfach z.B. in Excel weiterverarbeitet werde.

Google Bilder-Liste Konfiguration

Bookmarklet – Google Bilder-Liste Konfiguration

Mit dem Konfigurations-Bookmarklet können die Domainlisten und Optionen verwaltet werden.

Welche Liste wofür benutzt wird, geht aus Beschreibung oben zu den Filtern hervor.

Der Text im Eingabefeld wird mit [Hinzufügen] der Liste hinzugefügt. Dabei wird nicht geprüft, ob es sich syntaktisch um eine Domain handelt. Die Text ist ohne http:// und / am Ende einzugeben, also nur der Domainname. Es konnen auch mehrere Namen mit Leerzeichen, Komma oder Semikolon getrennt eingegeben/eingefügt werden.

Mit [Löschen] werden Einträge aus der Liste gelöscht. Eine Mehrfachauswahl ist möglich. Die aktuelle Liste kann mit Download als Textdatei heruntergeladen werden. Die Einträge sind mit Semikolon getrennt.

Mit Optionen kann die Voreinstellung für das Anzeigefilter festgelegt werden.

Zu guter Letzt und gaaanz wichtig, mit [Einstellungen speichern] werden die Einstellungen übernommen.

Die Listen der Domains und die Optionen werden im localStorage gespeichert, was bei sehr alten Browsern nicht funktioniert. Zudem müssen Cookies für die Google-Domain erlaubt sein.

Die Bookmarklets

Aktuelle Version: 2.2.5

Google Bilder Liste Google Bilder Konfig Google Bilder IDs

Die Bookmarklets sind zwar Links, es macht aber wenig Sinn, diese hier direkt anzuklicken. Vielmehr müßt Ihr sie als Lesezeichen im Browser speichern, also z.B. einfach in die Bookmarkleiste ziehen.

Hinweise zur Benutzung

Dann ruft Ihr die Google-Bildersuche mit dem gewünschten Suchbegriff auf und startet das Bookmarklet durch Anklicken des Lesezeichens (Buttons in der Lesezeichenleiste).

Bookmarklet – Google Bilder-Liste Anwendung

Google stellt in der Bildersuche direkt nach dem Aufruf zunächst die Liste der ersten 100 Treffer bereit. Falls Ihr mehr Ergebnisses in der Liste haben wollt, müßt Ihr mit dem Scrollbalken rechts ganz nach unten Scrollen. Dann werden ggf. weitere 300 Suchergbnisses nachgeladen. Die Liste ist somit 400 Treffer. Gibt es noch mehr Treffer, ist ganz unten eine Schaltfläche [] zu sehen. Damit werden die nächsten 100 Treffer geladen. Und auch hier gilt, wollt Ihr die komplete Liste haben, müßt Ihr ganz nach unten scrollen.

Das Bookmarklet funktioniert mit der Google-Bildersuche und auch mit den speziellen Funktionen wie „Weitere Größen“ und „Optisch ähnkich“.

Suche mit Bild

Bei der „Suche mit Bild“ ist eine Besonderheit zu beachten.

Hier wird von Google eine andere Darstellung als in der Bildersuche verwendet. Sie entspricht eher der normalen Such und ist entsprechend seitenweise (je 10 Treffer) strukturiert. Um alle Treffer zu erfassen, öffnet und schließt das Bookmarklet die jeweiligen Trefferseiten.

Da hier der Browser zunächst das Öffnen neuer Fenster anmeckert, müßt Ihr das erlauben, damit das Erstellen der List klappt. Ansonsten bleibt der Prozeß einfach stehen. Und es dauert je nach Seitenzahl etwas länger, bis alle Daten erfaßt sind.

Getestet habe ich die Bookmarklets zuletzt mit Firefox 98.0.2 (64-Bit), Google Chrome 99.0.4844.82 (64-Bit) und Microsoft Edge 99.0.1150.55 (64 Bit), damit funktioniert es. Mit dem Internet Explorer 9.0 funktioniert es nicht, dem sind die URLs zu lang.

Viel Spaß beim finden Eurer Bilder! :-)

Ein Kommentar »

Das Problem mit WordPress und den ungültigen URL-Parametern

WordPress hat ein Problem mit ungültigen URL-Parametern. Wenn jemand an die Blogadresse einfach einen Parameter mit einem Wert anhängt, wird das von WP klaglos akzeptiert, obwohl es völlig unsinnige Werte sein können.

Ein Beispiel:
http://vierzehnfuffzig.de/?url=http://www.heise.de
oder
http://vierzehnfuffzig.de/?blafasel=trallalla
oder was auch immer.

In allen Fällen gibt WordPress brav die Startseite meines Test- und Probierblogs aus. Das ist aus SEO-Sicht natürlich schlecht, denn es kann dadurch ganz viel DC enstehen.

Die Abhilfe ist recht simpel, die URL-Parameter müssen einfach gegen die in WordPress bekannten Parameter getestet werden. Das sind nur ein paar Zeilen PHP-Code.

Ich habe das mal in eine kleines Plugin verpackt, welches ich hier zum Download anbiete: 123 Check URL Para Version 0.11

Das war’s, mehr wird nicht benötigt. Probleme könnte es nur geben, falls Plugins oder Themes URL-Parameter verwenden, die nicht in WordPress registriert wurden. Das ist dann aber schlecht programmiert. E sgibt jetzt im Plugin-Quelltext weitere erlaubte Parameter einzutragen:

$para = array( 'p1', 'p2', 'p3' );  // zusätzlich erlaubte URL-Parameter

Einfach die erlaubten Parameter im array wie im Beispiel oben eintragen.

5 Kommentare »

Strato-AppWizard verhindert WordPress-Update, so geht es trotzdem

WordPress mit wenigen Klicks installieren

Sie sind ja ganz nett, diese Ein-Klick-Installationen bei den großen Webhostern wie 1&1 (Click&Build), Host Europe (Webanwendungen) und Strato (AppWizard). Mit wenigen Klicks kann man im Konfigurationsbereich des Hostingpaketes ein komplettes WordPress installieren. Man muß sich nicht um die Einrichtung von Datenbanken, die Anpassung der wp-config.php-Datei und den Upload per FTP kümmern.

Leider haben diese Installationen auch Nachteile. Bei Strato soll man das WP-Update per AppWizard durchführen. Schlecht ist es nur, wenn gar kein Update oder nur die kleinen Updates angeboten werden.

Strato AppWizard WP-Update

Für die älteren Versionen gibt es nur die kleinen Updates (3.0→3.0.4, 3.5.1→3.5.2) und bei 3.8 sieht es ganz schlecht aus. Vermutlich ist auch gar kein Updated er Hauptversion, also z.B. von 3.8 auf 3.9 oder 4.0 vorgesehen.

Kein Update möglich

Normalerweise ist es ja kein Problem, das Update direkt im Adminbereich von WordPress durchzuführen. Nur leider wird diese Möglichkeit von den 1-Klick-Paketen schlicht und ergreifend ausgeknipst, ist nicht vorhanden.

Strato-AppWizard - kein WP-Update

Nun habe ich mich auf die Suche begeben, an welcher Stelle denn das Update wegkonfiguriert wird. Fündig wurde ich in der Datei wp-includes/capabilities.php. Dort gibt es Funktionen mit denen Abgefragt werden kann, welche Rechte ein angemeldeter Nutzer hat, also was er alles im Adminbereich tun darf.

So sieht dort eine Funktion im StratoAppWizard-Paket aus:

function current_user_can( $capability ) {
	$current_user = wp_get_current_user();

	if ( empty( $current_user ) )
		return false;

	$args = array_slice( func_get_args(), 1 );
	$args = array_merge( array( $capability ), $args );

	if ( $capability == 'update_core' ) { return false;	} else { return call_user_func_array( array( $current_user, 'has_cap' ), $args ); }
}

Die Frage, ob der aktuelle Nutzer WordPress updaten darf (‚update_core‘), wird in der letzten Zeile immer mit false beantwortet. Es darf als niemand, es wird gar nicht erst geprüft, ab man als Admin dieses Recht hat. Nö, die Funktion sagt immer nein.

WP-Update wieder hervorzaubern

Entsprechend simpel ist die Lösung des Update-Problems. Man muß einfach die originale Funktion wieder herstellen. Das geht einfach mit einem FTP-Programme oder auch mit dem Strato Web-FTP.

Wir wechseln in das Verzeichnis /WordPress_01/wp-includes/, wobei die Nummer am Ende die laufende Nummer der AppWizard-Installation ist.

Strato Web-FTP capabilities.php

Dort finden wir die Datei capabilities.php und direkt darunter eine capabilities.php.bak.1387242074, ggf. mit einer anderen Zahl am Ende. Das ist die nicht manipulierte, originale WordPress-Datei. Genau die brauchen wir.

Nun können wir einfach zuerst die capabilities.php in capabilities.php.strato umbenennen und anschließen die capabilities.php.bak.1387242074 in capabilities.php.

Das Umbenennen geht im Strato-WebFTP mit der rechten Maustaste auf der Datei.

Strato Web-FTP - Datzei umbenennen

Das wars auch schon, im Adminbereich sollte nun das Update auf die neue WP-Version angeboten werden.

Getestet habe ich das nur mit der Version 3.8, bei den älteren Versionen könntes aber prinzipiell genauso funktionieren.

WP Version 3.2.x und 3.4.x

Bei WordPress Version 3.2.x und 3.4.x hat Strato das Core-Update an einer anderen Stelle ausgeschaltet (Veränderung in der Datei /wp-include/update.php). Es wäre aber zu aufwändig, diese Änderungen rückgängig zu machen.

Strato AppWizard WP-Update 3.5.1

Als Ausweg bleibt hier das schrittweise Update im Strato-AppWizard bis zur WordPress-Version 3.5.1-4. Bei dieser Version ist das Update nicht gesperrt und damit dann direkt im WP-Backend möglich.

Strato auf die Sprünge helfen

Es ist ja nun nicht das erste Mal, daß ich eine Strato-Problem bzw. -Fehler ausbügeln muß. Wenn ich da so an das www/ohne-www Problem oder die Sache mit der Remote-Adresse denke. Das früher fehlende mod_rewrite will ich gar nicht erst an die große Glocke hängen.

Wie auch immer, ich hoffe, daß ich dem einen oder anderen leidgeplagten Strato-User ein bißchen helfen konnte. Dann hat es sich doch schon gelohnt. :-)

39 Kommentare »