
So schön sie auch ist, sie stinkt! Lange mag ich nicht neben ihr sitzen, daher musste ich sie umstellen. Dafür weiß ich jetzt, warum sie nur € 1,– gekostet hat. 😜

Hermann Leopold im Internet

So schön sie auch ist, sie stinkt! Lange mag ich nicht neben ihr sitzen, daher musste ich sie umstellen. Dafür weiß ich jetzt, warum sie nur € 1,– gekostet hat. 😜

Ich habe seit ca. zwei Jahrzehnten mal wieder so richtig Lust, was mit meiner Zenza Bronica ETR-S zu fotografieren; auch wenn ich noch nicht weiß, was ich mit den Negativen machen soll: Mittelformat-Scanner sind schon arg teuer.

Da es für den Garten noch zu kalt ist, gedeihen diese Tulpen bei uns im Wohnzimmer. Mal schauen, ob sie blühen werden.
Bei den Daten der einzelnen Seiten habe ich wie besprochen auf die Elemente „changefreq“ und „priority“ verzichtet. Dafür können so viele Bilder wie gewünscht hinzugefügt werden.
/*Deklariert Methoden und Konstanten für einen Seiteneintrag der sitemap.xmlAuthor: Hermann J. LeopoldEmail: hermann.leopold@leopoldnet.deDate: 2017-02-01/*interface ILeo_Sitemap_Page{// Symbol des Url-Elements:const csUrlSymbol = "url";// Symbol für das Location-Elementsconst csLocationSymbol = "loc";// Symbol für das Zuletzt-geändert-Elementconst csLastModSymbol = "lastmod";// Hinzufügen der Bilder// Was ein Bild ausmacht, wird in der // ILeo_Sitemap_Image festgelegt.function addImage(ILeo_Sitemap_Image $oImage);// URL der Seite angeben.function setLocation($sUrl);// Datum der letzten Änderung angeben.function setLastMod($sLastMod);}Die wichtigste Neuerung zum alten Plugin sitzt hier. Für jedes Bild können mehrere Texte hinterlegt werden. Die Möglichkeit, einen Link zur Lizenz zu hinterlegen habe ich behalten; wer weiß, ob es noch für was gut sein kann.
/*Deklariert Methoden und Konstanten für einen Bildeintrag in die sitemap.xmlAuthor: Hermann J. LeopoldEmail: hermann.leopold@leopoldnet.deDate: 2017-02-02/*interface ILeo_Sitemap_Image{// Symbol des Image-Elementsconst csImageSymbol = "image:image";// Symbol des Location-Elementsconst csLocSymbol = "image:loc";// Symbol des Untertitel-Elementsconst csCaptionSymbol = "image:caption";// Symbol des Aufnahmeort-Elementsconst csGeoLoaction = "image:geo_location";// Symbol des Titel-Elementsconst csTitle = "image:title";// Symbol des Lizens-Elementsconst csLicense = "<image:license>";// Ich wechsle hier von Loc auf Url,// um Verwechslungen zu vermeiden.function setUrl($sUrl);// Angabe des Untertitelsfunction setCaption($sCaption);// Angabe des Aufnahmeortsfunction setGeoLocation($sGeoLocation);// Angabe des Bildtitelsfunction setTitle($sTitle);// Angabe der Lizens-Elementsfunction setLicense($sLicense);}Jetzt wird es Zeit für Konkretes.
Die letzten Blüten des flammenden Käthchens – und noch immer schön! 😃

Ranunkel klingt nicht schön. „Gestern war ich beim Arzt, meine Ranunkeln entfernen lassen.“ „Bevorzugt im frischem Aas legt das Ranunkel bis zu 1000 Eier.“
Bestenfalls könnte es sich um Salat handeln. „Und dazu reichen wir frischen Ranunkel mit Öl und Essig.“ „Oh ja!“
Doch tatsächlich sind Ranunkeln sehr dekorative Blumen, so wie diese eine war, bevor sie verblühte.
Ich mag Schnittstellen. Schnittstellen (engl. Interfaces) sind ein Instrument objektorientierter Programmierung und sollen – salopp gesagt – sicherstellen, dass verschiedene Programmteile verlässlich zusammen arbeiten können.
Dies spielt besonders dann eine Rolle, wenn Erweiterungen oder ähnliches später und/oder von anderen erstellt werden sollen.
Schnittstellen wären auch eine Möglichkeit für WordPress gewesen, jedoch wurde darauf verzichtet; wohl auch, da PHP keine reine objektorientierte Programmiersprache ist. Auch werden die meisten bei der Entwicklung eines Plugins darauf verzichten, ich jedoch nicht.
Mir gefällt, dass ich auf diese Weise Ideen und Anforderungen in Code festschreiben kann, ohne bereits ins Detail gehen zu müssen; und es entstehen Arbeitsanweisungen für die konkreten Klassen.
Folgende Schnittstellen sind mir in den Sinn gekommen:
/*Deklariert Methoden und Konstanten für eine XML-DateiAuthor: Hermann J. LeopoldEmail: hermann.leopold@leopoldnet.deDate: 2017-01-30/*interface ILeo_Sitemap_Xml{// Ich mag die Idee, dass ein ständig gleich benötigtes Zeichen einmal festgelegt wird.const csTagAuf = "<";// Hier kann festgelegt werden, ob es nach einem XML-Tag einen Zeichenumbruch geben soll.// const csTagZu = ">";const csTagZu = ">\n";// Das Wichtigste: Das XML-Dokument als Stringfunction toString();}Datei: ILeo_Sitemap_Xml.php
Natürlich wird so eine XML-Datei nicht annährend vollständig beschrieben, doch für das Plugin reicht es. Da sich Inhalt und Attribute der Elemente unterscheiden, brauche ich dafür keine Methoden vorschreiben. Das Festlegen der spitzen Klammern als Konstanten ist nicht Humor, sondern es bringt Vorteile:
/*Deklariert Methoden und Konstanten für eine sitemap.xmlAuthor: Hermann J. LeopoldEmail: hermann.leopold@leopoldnet.deDate: 2017-01-30Verzeiht mein Denglish../*interface ILeo_Sitemap{// Symbolname des Wurzelelementsconst csRootSymbol = "urlset";// Der übliche Dateiname, sollte er nicht ersetzt werden.const csDefaultName = "sitemap.xml";// Legt den Namen der Datei fest; bsp.: sitemap.xmlfunction setSitemapName($sName);// Gibt die Url der Website an; bsp.: leopoldnet.de // Wichtig, da die Verweise meist relativ sind, aber absolut sein müssen.function setSiteUrl($sUrl);// Der Pfad zum Speichern wird auch benötigt.function setPath($sPath);// Das Wichtigste: Seiten der sitemap hinzufügen.// Was eine Seite ausmacht, wird in der ILeo_Sitemap_Page festgelegt.function addPage(ILeo_Sitemap_Page $oPage);}Datei: ILeo_Sitemap.php
Der Name der Datei ist nicht festgelegt; somit wäre es möglich, für verschiedene Suchmaschinen unterschiedliche Sitemaps zu erstellen. Auch der Speicherpfad ist (im Rahmen des Möglichen) wählbar; es muss nicht das Wurzelverzeichnis sein.
Wichtig ist das hinzufügen der Seiten. Die dafür vorgesehene Methode ‚addPage()‘ erwartet einen Parameter vom (noch) unbekannten Typ ILeo_Sitemap_Page. Alles, was eine Seite (aka Page) ausmacht, wird in der nächsten Schnittstelle deklariert.
Du hattest nur eine Aufgabe: Blühen bis zum Wochenende! Und du hast versagt. Blöde Bume.
Daher habe ich mir auch gar nicht erst die Mühe mit Stativ gemacht und geblitzt. So!
Eine Möglichkeit, einer Suchmaschine alle Seiten mitzuteilen, ist die Bereitstellung einer Datei namens sitemap.xml. Diese Datei wird von WordPress nicht automatisch erstellt; doch es gibt Plugins, die den Job erledigen. Da mir vor vielen Jahren keines gut gefiel, hatte ich ein eigenes geschrieben.
Der übliche Aufbau einer sitemap.xml:
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>http://www.example.com/</loc><lastmod>2005-01-01</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url></urlset> Beispiel von sitemaps.org
Unterhalb von <url> ist nur das "loc"-Element Pflicht, und im alten Plugin hatte ich auf die optionalen Elemente verzichtet.
"changefreq" ist bei einem Blog sinnlos; auch glaube ich nicht, dass sich irgendeine Suchmaschine davon beeinflussen lässt.
"priority" ist schon berüchtigt für den Schindluder, der damit getrieben wurde. Daher denke ich nicht, dass sich Suchmaschinen dafür interessieren.
"lastmod" hingegen lässt sich ermitteln und könnte nützlich sein. Ich setze es mit auf die Todo-Liste.
Somit sieht die bisherige sitemap.xml reichlich langweilig aus:
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>http://leopoldnet.de/</loc></url><url><loc>http://leopoldnet.de/impressum</loc></url><url><loc>http://leopoldnet.de/start-meiner-website-als-blog</loc></url><url><loc>http://leopoldnet.de/freezing-leafs</loc></url><!-- und so weiter -->Die sitemap.xml von leopoldnet.de vom 28.01.2017
Und noch etwas fehlt: Die Übersichtsseiten der Schlagwörter und Kategorien – auf die Todo-Liste damit.
Google hat die sitemap.xml um Bildinformationen erweitert; da dies auf sitemaps.org nicht beschrieben wird, könnte es eine Eigeninitiative gewesen sein. Die Bilder müssen einer Seite zugewiesen werden; pro Seite sind 1000 Bilder erlaubt. Im Beispiel sähe es so aus:
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><url><loc>http://ihrebeispielurl.de/beispiel.html</loc><image:image><image:loc>http://ihrebeispielurl.de/bild.jpg</image:loc></image:image><image:image><image:loc>http://ihrebeispielurl.de/foto.jpg</image:loc></image:image></url></urlset>Beispiel von support.google.com
Sieht auch nicht besser aus, doch hier gibt es spannende, optionale Elemente:
Dieses Element sieht Google für den Untertitel vor; WordPress wiederum hat ein Feld "Alternativtext". Auch ist das Feld "Beschriftung" denkbar.
Anders als ich dachte, sind hier keine Koordinaten gewünscht, sondern der Ort als Klartext; zum Beispiel "Bremen, Deutschland". Leider stellt WordPress für Medien kein entsprechendes Feld zur Verfügung, die Information könnte ich unter "Beschreibung" einfügen, wobei eine Art Auszeichnung nötig wäre: loc{Bremen, Deutschland} oder so.
Hierfür scheint das Feld "Titel" wie geschaffen.
Sicher interessant, aber derzeit für mich nicht.
Ganz klar: Hier lassen sich deutlich mehr Informationen über die Sitemap übermitteln.
Dann mache ich mich mal an die Arbeit