WordPress related posts anzeigen ohne Plugin

Kategorie: Internes

Tags: Internes / Ohne Plugin / Plugin / WordPress

Veröffentlicht am

Related Posts also, die Funktion „Verwandte Beiträge“, ruft relevante Inhalte aus dem Blog ab, um sie am Ende eines jeden Beitrages anzuzeigen. Es verwendet Artikelinhalte, Tags und Kategorien, um automatisch eine Liste relevanter Posts auf der Website anzuzeigen.
Die Vorteile sind:

  • Die Anzeige der ähnlichen Beiträge erzeugt eine bloginterne Vernetzung der Beiträge. Das ist gut für mich und Google ist geil drauf.
  • Besucher werden dazu animiert, länger auf der Webseite zu verweilen.

Wenn es im Netz eine seriöse Codeschnipsel-Lösung gibt, die mit relativ wenig Aufwand ein Plugin ersetzt, bin ich dabei! Genau sowas fand ich im Blog von Strato.de.

Der Plan ist, nach einem Beitrag (inklusive Tags, Kategorie und Pagination Menue) und vor der Kommentarfunktion, drei mit dem aktuellen Artikel verwandte Beiträge anzuzeigen.

Obwohl mein neuer Freund Leo im GP Support Forum steif behauptet, dass dies nicht ginge oder man einen Entwickler bräuchte, funktioniert das folgende Snippet.

Code is poetry

Beim Theme GeneratePress (free) den Code an die folgende Stelle in die Datei comments.php einfügen.

/**
 * The template for displaying Comments.
 *
 * The area of the page that contains both current comments
 * and the comment form. The actual display of comments is
 * handled by a callback to generate_comment() which is
 * located in the inc/template-tags.php file.
 *
 * @package GeneratePress
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

######################################################
## Code für related posts hier einfügen (ohne '#'). ##
######################################################

/*
 * If the current post is protected by a password and
 * the visitor has not yet entered the password we will
 * return early without loading the comments.
 */
if ( post_password_required() ) {
	return;
}

Der Code

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}
/* Ähnliche Beiträge anzeigen
// Quelle: https://www.strato.de/blog/wordpress-related-posts-ohne-plugin/
*/
$orig_post = $post; global $post;
$tags = wp_get_post_tags($post->ID); if ($// ) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
/* 'date_query' => array( array( 'after' => '-1 year' ) ), // Nur Beiträge jünger als ein Jahr */
'posts_per_page'=>3, // Anzahl der angezeigten Beiträge
'caller_get_posts'=>1,
'orderby'=>'rand'
);
$my_query = new wp_query( $args ); if( $my_query->have_posts() ) {

echo '<div id="related-posts"><h4><b>Ähnliche Beiträge</b></h4><ul>';

while( $my_query->have_posts() ) {
$my_query->the_post(); ?>

<li><div class="related-images"><a href="<? the_permalink()?>" rel="bookmark"><?php the_post_thumbnail(); ?></a></div>
<div class="related-content">
<h5><a href="<? the_permalink()?>" rel="bookmark"><?php the_title(); ?></a></h5>
</div>
</li>
<? }
echo '</ul></div>';
}
}
$post = $orig_post; wp_reset_query(); 
/* END of related posts */

Quelle: Strato.de/blog

Ausgabe mit CSS anpassen

Die folgenden CSS Zeilen könnt ihr zur Probe ins Custom CSS reinkopieren.

/* Ähnliche Beiträge ausrichten*/ 
#related-posts {
position: relative;
margin-right: auto;
margin-left: auto;
max-width: 58rem;
}
/* Ähnliche Beiträge Listenpunkte entfernen*/ 
#related-posts li {
list-style: none !important;
margin-left: -3rem;
}

/* Ähnliche Beiträge Abstände */ 
.related-content h3 {
  margin: 1rem auto 6rem;
}
/* Farbe "Ähnliche Beiträge" */ 
#related-posts h3 {
  color: #000000;
}

Mit meinem Theme GeneratePress und dessen dynamische Blockelemente vertragen sich nicht mit Code wie position: relative; oder ähnlichem. Die folgende Überschrift „Schreibe einen Kommentar“ ist dann völlig aus dem Häuschen und springt teilweise nach oben in die related posts hinein.
Daher erscheint bei mir derzeit nur eine unschöne, aber auf allen Geräten stabile Liste.

Anmerkung

Die Funktion related posts gehört in WordPress schon seit einiger Zeit zur Grundausstattung. Diese kann, wenn das Theme das unterstützt, im Editor ganz unten aktiviert werden.
Wie schon bei der Ausgabe von last updated von mir bemängelt ist das schon der zweite Fall bei dem GenaratePress eine schon vorhandene Funktion nicht von sich aus preisgibt. Es wird auch im GP Forum von Moderatoren steif behauptet, dass dies nicht ginge oder man einen Entwickler bräuchte. Warum? Vielleicht um zum Kauf der Premium Version anzuregen?

Dazu werde ich mich noch genauer schlaumachen und hier berichten. Es wäre nämliche eine an Betrug grenzende Frechheit, würde GP in WordPress bestehende Funktionen als Premium verkaufen!

Anzeige von ähnlichen Beiträgen mittels Plugin

Die Anzeige von related posts mit Plugin sieht natürlich viel professioneller und schöner aus als meine spartanische Lösung. Weiters können viel mehr Einstellungen ausgewählt werden und diese sind auch bei einem Wechsel oder Update des Themes nicht verloren.

Der Webminiser stellt euch acht WordPress-Plugins in diesem Beitrag genauer vor. Bitte beachtet, dass einiger dieser Plugins von manchen Hostern wegen zu hohen Datenaufkommens gesperrt sind.

Liebe Grüße und Bleibts gsund!

——–{—<{{@}}>—}——–

X