Posts und verwandte Beiträge Teil 1

home bludit templating

ChatGPT - Alltägliche Aufgaben mit Prompts meistern   -  Du möchtest wissen, wie du KI richtig nutzt und davon profitieren kannst? Dann wird dir dieses Workbook eine große Hilfe sein. Rainer Hattenhauer zeigt anhand einer Vielzahl praktischer Beispiele aus den unterschiedlichsten Anwendungsbereichen ganz konkret, wie KI dein Leben erleichtern kann. Egal ob du Texte verfassen, recherchieren, Bilder generieren oder deinen eigenen Programmcode erstellen möchtest. Hier kannst du auch ohne Vorkenntnisse direkt loslegen und die gängigen KI-Frontends ausprobieren. Inklusive ChatGPT, DALL-E 2, Midjourney, DeepL Write etc.

Wir sind Mitglied im Amazon.Partnernet und können mit Affiliate-Links den Betrieb der Webseite etwas unterstützen, für Sie als Leser ist das natürlich vollkommen kostenlos.

Teil 1 - Mit wenigen Handgriffen zeigen Sie verwandte Beiträge unter dem Post an. Dank der exzellenten Dokumentation des Bludit-Projektes fast ein Kinderspiel.

Inhalt

Verwandte Beiträge anzeigen

Wie im Internet oft vom Leser erwartet und mittlerweile zum Quasistandard geworden, erscheinen unterhalb eines Beitrags ähnliche Beiträge. Gesteuert werden kann dieser Mechanismus über die geniale Erfindung der Schlagwörter (Tags). In der wirklich excellenten Dokumentation (https://docs.bludit.com/en/dev-snippets/tags) des CMS Bludit findet man dazu zwei wesentliche Codeschnipsel, die theoretisch ineinander geschachtelt werden können - doch Achtung, es gibt ein kleines Problem damit.

001  name();
010
011    // Print the pages title related to the tag "example"
012    foreach ($tag->pages() as $pageKey) {
013    $page = new Page($pageKey);
014    echo $page->title();
015    }
016  ?>

Beiträge mit dem Tag "example" anzeigen (erstes Codeschnipsel aus der Doku)

Das oben gezeigte Codesegment liest alle Seiten (Posts) in denen das Schlagwort "example" gesetzt wurde. Das ist schon mal die halbe Miete. Sie müssen jetzt nur noch realisieren, das das feste Schlagwort "example" durch das tatsächliche Schlagwort des aktuell angezeigten Beitrags ersetzt wird. Dafür kommt das folgende Codeschnipse aus der hervorragenden Bludit-Doku ins Spiel.

001  <?php
002    $returnsArray = true;
003
004    $items = $page->tags($returnsArray);
005
006    foreach ($items as $tagKey=>$tagName) {
007      echo $tagName;
008    }
009  ?>

Tag(s) des aktuellen Beitrags lesen (zweites Codebeispiel aus der Doku)

Die Zeile 003 des ersten und die Zeile 007 des zweiten Codeschnipsels sind also die Verbindungsstellen, um beide Scripte miteinander zu verbinden. Diese beiden Scripte habe ich zum folgenden Codeschnipsel zusammengefügt.

001  <?php
002    $returnsArray = true;
003    $items = $page->tags($returnsArray);
004    foreach ($items as $tagKey=>$tagName) {
005      //echo $tagName;
006          
007      $tagKey = strtolower($tagName);
008      //$tagKey = 'example';
009      $tag = getTag($tagKey);
010      echo '<p>Schlagwort: ' . $tag->name().'</p>';
011      foreach ($tag->pages() as $pageKey) {
012        $page = new Page($pageKey);
013        echo '<p><img src='.$page->coverImage().' style="width: 120px; float: left; margin-right: 15px;">';
014        echo '<h3>'.$page->title().'</h3>';
015        echo $page->description();
016        echo '<a href='.$page->permalink().'> mehr...</a></p>';
017      }       
018    }     
019  ?>

Der Match aus beiden Codeschnipseln

Aber es gibt hier ein kleines undokumentiertes Problem auf das ich selbst erst nach einigen Analysen gestoßen bin. Das simple übertragen in Zeile 007 ala $tagKey = $stagName funktioniert nicht, bzw. das Script arbeitet etwas unzuverlässig. Die Ursache ist, das $tagKey die Schlagwörter zwingend als LowerCase benötigt. Es reicht also aus den Return-Wert aus $tagName zuvor mit strtolower() in Kleinbuchstaben umzuwandeln - dann klappts auch mit dem Nachbarn.

Das Beispiel zeigt bei Einbindung in das Script page.php des Theme, unterhalb des Posts alle verwandten Beiträge in denen ebenfalls die Schlagwörter gesetzt wurden.

Optional: Das Script zeigt allerdings auch den aktuell angezeigten Post mit an, dies können Sie durch eine einfache if-Abfrage umgehen, dadurch zeigt das Script alle Beiträge die nicht der aktuell angezeigte sind - Ihr wißt was ich meine.

Das Codeschnipsel funktioniert nur sinnvoll, wenn jeder Beitrag nur ein Schlagwort besitzt. Tauchen mehrere Schlagworte in einem Beitrag auf, die auch mehrfach in einem anderen Beitrag enthalten sind, werden diese auch mehrfach angezeigt. Das Codesegment sollte daher noch um einen Filter (Sort) erweitert werden, welcher doppelte Nennungen entfernt. Dies zeige ich im folgenden Beitrag.

Und im übrigen, sind Punkte und Leerzeichen in Tags verboten und können zu Problemen führen! Auch gleichnamige Beiträge müssen vermieden werden, da sie als doppelt gewertet werden.

Wählen Sie Schlagworte mit bedacht und überfrachten Sie den Beitrag nicht mit unsinnigen Tags, die teilweise überhaupt nicht im Text vorkommen. Zwei bis drei Schlagworte reichen schon aus.

Auch interessant, die Webseite des Bludit-Entwicklers Diego Najar: https://varlogdiego.com/


 21.12.2023    Kontakt@Oliver-Lohse.de    Beitrag verwandt untergeordnet

COBOL - Altsysteme warten und erweitern. Das umfassende Praxis-Handbuch   -  Dieses Buch richtet sich an erfahrene Entwickler objektorientierter Sprachen wie C++ oder Java. Es vermittelt die Funktionsweise der Programmiersprache COBOL, um die in zahlreichen Implementierungen auf unterschiedlichen Plattformen immer noch produktiv laufenden COBOL-Programme zu verstehen, zu warten und bei Bedarf mit zusätzlichen Funktionalitäten zu erweitern. Dafür bietet es Ihnen sowohl eine grundlegende Einführung in die Programmierung mit COBOL als auch eine thematisch gegliederte Referenz der Befehle mit praktischen Beispielen.

Wir sind Mitglied im Amazon.Partnernet und können mit Affiliate-Links den Betrieb der Webseite etwas unterstützen, für Sie als Leser ist das natürlich vollkommen kostenlos.

Weitere passende Beiträge

Untergeordnete Seiten in GS abfragen

 get-simple  Seiten Beitrag untergeordnet


Ermitteln Sie untergeordnete Seiten mit Hilfe von menu_data(). Ordnen Sie Seiten und Beiträge mit dieser Technik einem Leitartikel auf der Webseite zu.

Posts und verwandte Beiträge Teil 2

 bludit  Beitrag untergeordnet verwandt Post


Teil 2 - dieser Beitrag zeigt Ihnen das vollständige Coding, wie das CMS Bludit anhand von Tags verwandte Beiträge anlisten kann und als Vorschläge anzeigt.

Posts mit untergeordneten Beiträgen

 bludit  Beitrag untergeordnet zugewiesen Anhang


Die Funktion Beiträgen einen Leitartikel zu geben, gibt es schon sehr lange in Bludit, jedoch war die Anzeige im Theme "Alternative" nicht möglich.

Konkreten Beitrag in GetSimple lesen

 get-simple  Beitrag Post Article lesen


Lesen Sie feste Beiträge mit zwei Zeilen Code aus dem GetSimple CMS aus. Besonders hilfreich für fixierte Templates mit unveränderlichen Strukturen.

Einen bestimmten Beitrag anzeigen

 pico  Beitrag Post


Statt alle Blogbeiträge im Loop aufzulisten, können Sie auch einen ganz konkreten Beitrag anzeigen und dessen Existenz zuvor prüfen. Dieses Script zeigt es.

Der Seiten Paginator in Pico

 pico  Paginator Seite Beitrag Post


Dieser Beitrag zeigt Ihnen, wie Sie mit wenigen Handgriffen einen Seitenpaginator und Blätterfunktion in Ihre CMS-Webseite bzw. Web-Blog implementieren.

Bestimmte Seiten im Loop ausschliessen

 pico  Beitrag Loop


if-Kontrollstrukturen im Twig-Template helfen bestimmte Seiten auszuschließen, denn nicht alle Seiten sollen beispielsweise einen Autor oder das Datum zeigen

Beiträge und Kategorien rekursiv anzeigen

 yellow  Navigation Menue Ordner Post Beitrag


Die Standard URL für den Admin Login in Datenstron Yellow und wie Sie ihn verstecken bzw. verbergen. So schützen Sie sich vor einem Hacker-Angriff auf das CMS

Beitragsmenü ohne Plugin in Pico

 pico  Menue Navigation Beitrag


Für die Einbindung eines Menüs gibt es kostenlose Plugins, Sie können dies auch mit Mitteln des Templates umsetzen und verzichten auf unsichere Plugins

Beitragsanzahl mit Twig ermitteln

 pico  Beitrag Post


Wollen Sie im Rahmen des Twig-Templatings unter PICO die Anzahl der Beiträge in einem Ordner ermitteln, dann ist dieser Code die Lösung

Beitrags Sortierung auf- o. absteigend

 automad  Beitrag Sortieren Datum Titel ASC DESC


So sortieren Sie Beiträge und Artikel im CMS Automad aufsteigend oder absteigend für die Anzeige im Frontend des Besuchers bzw. des Lesers Ihrer Webseite.

Beitrags Datum in Automad verbergen

 automad  Beitrag Datum verbergen


Das Beitragsdatum ist durchaus SEO relevant und es wird empfohlen dieses im CMS Automad auszuschalten. Die folgenden Snippets können Sie dafür bearbeiten.

Alle Posts im Beitrags-Loop zeigen

 get-simple  Loop Beitrag Post


Lesen Sie im GetSimple CMS alle Posts und Beiträge auf der Startseite mit dem Beitrags-Loop einzeln aus, der Beitrag zeigt Ihnen wie einfach das geht.

Aktuell angezeigte Seite abfragen

 bludit  Page Beitrag Seite


Arbeiten Sie in Bludit mit Seitennavigationen, dann kann die Abfrage der aktuellen Seite durchaus hilfreich sein. So fragen Sie diesen Wert der Seite ab.

Admin Einfache Artikel Statistik

 bludit  Beitrag Artikel Statistik


Mit diesem Code, können Sie eine ganz einfache Beitrags-Statistik erstellen und in einem Log-File speichern. Ermitteln Sie welcher Beitrag wie oft gelesen wird

Impressum


CMSWorkbench.de ist eine reine Entwickler-Webseite und dient vorwiegend als Wissensspeicher für die Entwicklung von CMS

Datenschutz


Die Webseite verwendet keinerlei Tracking- oder Speicher-Mechanismen, die Rückschlüsse auf Ihre IP oder das Leseverhalten zulassen

Affiliate


Wir sind Mitglied im Amazon Partnernet und können mit Affiliate-Links (* den Betrieb der Seite etwas unterstützen, für Sie ist das natürlich kostenlos

Kontakt


Sie können mit uns über eMail Kontakt aufnehmen, schreiben Sie an Kontakt@Oliver-Lohse.de