Logo

Verwandte Beiträge 1 in Bludit CMS anzeigen lassen


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

Sabrent ext.Festplattengehäuse

Sabrent ext.Festplattengehäuse - HIGH SPEED Das SABRENT externe Festplatte Gehäuse unterstützt UASP, deshalb kann das Gehäuse Ihnen eine außergewöhlich hohe Übertragungsrate von bis zu 5 Gbps für den Datentransfer bieten! Damit lassen sich HD Filme, Music und data in nur Sekunden transferieren. (Abwärtskompatibel mit USB 2.0 oder 1.1) Hinweis

kaufen...
Automad Bludit Coast GetSimple GRAV Handlebars Java PHP Pico Smarty Templating Typemill WonderCMS WordPress yamlCMS

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/

Passend:


Aktivieren Sie den Markdown Parser im CMS Bludit ganz leicht

So aktivieren Sie den integrierten und deutlich einfacheren Markdown-Parser des Bludit CMS und schalten die visuellen Editoren TinyMCE und EasyMDE ab.

So ermitteln Sie den Permalink zur Kategorie im Bludit CMS

Dieser Beitrag zeigt Ihnen, wie Sie im CMS Bludit den Kategorie-Link (oft auch Permalink oder Slug genannt) zu einem Kategorie-Namen ermitteln können.

Bludit gibt SEO Informationen zum Beitrag im Backend aus

Lassen Sie sich im Bludit Backend die wichtigsten SEO Informationen zu Länge des Titels und der Beschreibung anzeigen. Passen Sie die Datei content.php an.

Einen ganz konkreten Post und Beitrag im CMS GetSimple 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.

Untergeordnete Seiten im Template des CMS GetSimple abfragen

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

Der grundlegende Meta Aufbau eines Beitrags im Pico CMS

Dieser Beitrag soll Ihnen einen Eindruck vermitteln, wie ein einfacher PICO Beitrag in Markdown aussieht. Sie benötigen dafür einen beliebigen ASCII Editor.

Der erste Start und erster Beitrag der Pico CMS Webseite

Dieser Beitrag zeigt Ihnen die einfache Installation und Inbetriebnahme des freien PICO CMS ist. Es sind nur wenige Handgriffe und wenig Voraussetzungen nötig.

Einen ganz bestimmten Beitrag im Template anzeigen

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.

Standard Meta-Attribute in einem Pico CMS Beitrag anlegen

Das Pico CMS bietet bereits eine ganze Menge an Meta-Attributen die Sie bereits gut nutzen können. Eine vollständige Attribut-Liste zeigt dieser Beitrag.

Schlagworte mit CSS Styles im Automad CMS umbrechen lassen

Korrigieren Sie den defekten CSS Style im populären CMS Automad mit wenigen Codezeilen, um beliebte Schlagwörter und Tags korrekt anzeigen zu können.

Schlagwörter im Theme "Alternative" des Bludit aktivieren

Aktivieren Sie die Anzeige von Schlagwörtern im Bludit Theme Alternative. Damit ist das vorinstallierte Template deutlich aufgewertet und funktionaler.

Schlagwörter im Theme BlogX des Bludit CMS anzeigen

Schlagwörter und Tags sind hilfreich und beliebt. Dieser Beitrag zeigt Ihnen, wie Sie diese in den beiden Templates BlogX und Alternative einschalten.

Untergeordnete Posts im Template des Bludit CMS anzeigen

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.

Tag Schlagwort Liste als Twig Template für Pico CMS entwickeln

Für das Pico CMS erzeugt dieses Codebeispiel eine Tagliste, die Beiträge mit gleichen Tags auflistet. Binden Sie diese Twig Template in einen Beitrags ein.

Verwandte Beiträge 2 in Bludit CMS anzeigen lassen

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.


Meta: Instagram CMSWorkbench.de GIMP-Handbuch.de Kontakt Impressum Datenschutz