WordPRess verfügt über viele Plug-Ins zum Implementieren verwandter Artikelfunktionen. Der Vorteil von Plug-Ins besteht darin, dass sie einfach zu konfigurieren sind, sich jedoch möglicherweise nur geringfügig auf die Geschwindigkeit der Website auswirken, weshalb viele Benutzer die Verwendung von Code bevorzugen die erforderlichen Funktionen, aber andererseits hat die Code-Implementierung auch Nachteile, das heißt, die Konfiguration ist kompliziert und Leute, die den Code nicht verstehen, sind völlig verwirrt oder können nur den Code anderer Leute kopieren. Es ist besser, Plug-Ins zu verwenden.
Hier habe ich verschiedene Möglichkeiten zusammengestellt, Code zum Implementieren verwandter Artikel zu verwenden, und ich hoffe, dass dies für alle hilfreich ist Wenn Sie Fragen haben, können Sie diese in diesem Artikel posten und ich werde Ihnen umgehend antworten. Bevor wir beginnen, möchte ich erklären, dass das von allen folgenden Methoden ausgegebene HTML-Codeformat die folgende Form hat und Sie es nach Bedarf ändern können:
<ul id="xxx">
<li>* <a title="Artikeltitel 1" rel="bookmark" href="Artikellink 1">Artikeltitel 1</a></li>
<li>* <a title="Artikeltitel 2" rel="bookmark" href="Artikellink 2">Artikeltitel 2</a></li>
...
</ul>
Methode 1: Tagbezogen
Rufen Sie zuerst alle Tags des Artikels ab und dann n Artikel unter diesen Tags. Diese n Artikel sind dann Artikel, die sich auf den Artikel beziehen. Alle WordPress-bezogenen Artikel-Plug-Ins, die jetzt angezeigt werden, verwenden diese Methode. Hier ist der implementierte Code:
<ul id="tags_related">
<?php
$post_tags = wp_get_post_tags($post->ID);
if ($post_tags) {
foreach ($post_tags als $tag)
{
// Holen Sie sich die Tag-Liste
$tag_list[] .= $tag->term_id;
}
// Zufällig ein Tag aus der Tag-Liste abrufen
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
// Diese Methode verwendet die Funktion query_posts(), um verwandte Artikel aufzurufen. Das Folgende ist die Parameterliste
$args = array(
'tag__in' => array($post_tag),
'category__not_in' => array(NULL), // Kategorie-ID nicht enthalten
'post__not_in' => array($post->ID),
'showposts' => 6, // Zeigt die Anzahl verwandter Artikel an
'caller_get_posts' => 1
);
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a ></li>
<?php endwhile;
<li>* Noch keine verwandten Artikel</li>
<?php endif; wp_reset_query(); } ?>
</ul>
Gebrauchsanweisung: „Ausgeschlossene Kategorie-ID“ bedeutet, dass verwandte Artikel keine Artikel unter dieser Kategorie anzeigen. Ändern Sie einfach den NULL-Wert in derselben Zeile in die ID der Artikelkategorie. Verwenden Sie Kommas halber Breite, um mehrere IDs zu trennen. Da hier nur 6 verwandte Artikel angezeigt werden, werden unabhängig davon, wie viele Werte dem Parameter tag__in von query_posts() zugewiesen sind, nur 6 Artikel unter einem Tag angezeigt, es sei denn, das erste Tag hat 1 Artikel und das zweite Tag hat 2 Artikel und der dritte hat 3 Artikel. . . . . . Wenn dieser Artikel also mehrere Tags hat, rufen wir zufällig die ID eines Tags ab, weisen sie dem Parameter tag__in zu und rufen die 6 Artikel unter dem Tag ab.
Methode 2: Klassifizierungsbezogen
Mit dieser Methode wird der Zweck erreicht, verwandte Artikel abzurufen, indem die Kategorie-ID des Artikels und dann die Artikel unter dieser Kategorie abgerufen werden.
<ul id="cat_lated">
<?php
$cats = wp_get_post_categories($post->ID);
if ($cats) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID;
$args = array(
'category__in' => array($first_cat),
'post__not_in' => array($post->ID),
'showposts' => 6,
'caller_get_posts' => 1);
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute();
?>"><?php the_title(); ?></a></li>
<?php endwhile;
<li>* Noch keine verwandten Artikel</li>
<?php endif; wp_reset_query(); } ?>
</ul>
Methode 3: Tag-bezogen, SQL-Erfassung
Das Prinzip zum Abrufen verwandter Artikel ähnelt Methode 1, jedoch werden beim Abrufen von Artikeln SQL-Anweisungen verwendet, um die Datenbank direkt zu lesen, wodurch zufällig 6 Datensätze verwandter Artikel anstelle der WordPress-Funktion query_posts() abgerufen werden.
<ul id="tags_related">
<?php
$post_tags = wp_get_post_tags($post->ID);
if ($post_tags) {
foreach ($post_tags als $tag)
{
// Holen Sie sich die Tag-Liste
$tag_list[] .= $tag->term_id;
}
// Zufällig ein Tag aus der Tag-Liste abrufen
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
$related = $wpdb->get_results("
SELECT {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.guid
VON {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
AND {$wpdb->prefix}term_taxonomy.taxonomy = 'post_tag'
AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}
term_relationships.term_taxonomy_id
AND {$wpdb->prefix}posts.post_status = 'publish'
UND {$wpdb->prefix}posts.post_type = 'post'
AND {$wpdb->prefix}term_taxonomy.term_id = '" . $post_tag . "'
AND {$wpdb->prefix}posts.ID != '" . $post->ID . "'
ORDNUNG NACH RAND( )
LIMIT 6");
// Die 6 im obigen Code soll den Erwerb von nur 6 verwandten Artikeln begrenzen.
// Durch Ändern der Nummer 6 können Sie die Anzahl der gewünschten Artikel ändern
if ( $verwandte ) {
foreach ($related as $lated_post) {
?>
<li>* <a href="<?php echo $lated_post->guid; ?>" rel="bookmark"
title="<?php echo $lated_post->post_title; ?>"><?php echo $lated_post->post_title ?></a></li>
<?php } } else { ?>
<li>* Noch keine verwandten Artikel</li>
<?php } }?>
</ul>
Methode 4: Klassifizierungsbezogen, SQL-Erfassung
Das Prinzip zum Abrufen verwandter Artikel ähnelt Methode 2, jedoch werden beim Abrufen von Artikeln SQL-Anweisungen verwendet, um die Datenbank direkt zu lesen, wodurch zufällig 6 Datensätze verwandter Artikel anstelle der WordPress-Funktion query_posts() abgerufen werden.
<ul id="cat_lated">
<?php
$cats = wp_get_post_categories($post->ID);
if ($cats) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID;
$related = $wpdb->get_results("
WÄHLEN Sie wp_posts.post_title, wp_posts.guid
VON wp_posts, wp_term_relationships, wp_term_taxonomy
WHERE wp_posts.ID = wp_term_relationships.object_id
AND {$wpdb->prefix}term_taxonomy.taxonomy = 'category'
AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
AND {$wpdb->prefix}posts.post_status = 'publish'
UND {$wpdb->prefix}posts.post_type = 'post'
AND {$wpdb->prefix}term_taxonomy.term_id = '" . $first_cat . "'
AND {$wpdb->prefix}posts.ID != '" . $post->ID . "'
ORDNUNG NACH RAND( )
LIMIT 6");
if ( $verwandte ) {
foreach ($related as $lated_post) {
?>
<li>* <a href="<?php echo $lated_post->guid; ?>" rel="bookmark"
title="<?php echo $lated_post->post_title; ?>"><?php echo $lated_post->post_title ?></a></li>
<?php } } else { ?>
<li>* Noch keine verwandten Artikel</li>
<?php } }?>
</ul>
Methode 5: Autorbezogen
Mit dieser Methode können andere Artikel des Autors dieses Artikels als verwandte Artikel abgerufen werden. Der Code lautet wie folgt:
<ul id="author_lated">
<?php
$post_author = get_the_author_meta( 'user_login' );
$args = array(
'author_name' => $post_author,
'post__not_in' => array($post->ID),
'showposts' => 6, // Zeigt die Anzahl verwandter Artikel an
'orderby' => Datum, // Nach Zeit sortieren
'caller_get_posts' => 1
);
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark"
title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile;
<li>* Noch keine verwandten Artikel</li>
<?php endif; wp_reset_query();
</ul>
Vergleich der Zeiteffizienz
Wir werden einen früheren PHP-Code verwenden, um die Codeausführungszeit jedes der oben genannten verwandten Artikel zu messen, um die Effizienz jeder der oben genannten Methoden zu bewerten und eine Referenz für Ihre Wahl bereitzustellen. Im Folgenden erhalten Sie 6 verwandte Artikel im selben Artikel. Die endgültige Berechnungszeit für jede der oben genannten Methoden ist wie folgt:
Methode 1: 0,18067908287048 Sekunden
Methode 2: 0,057158946990967 Sekunden
Methode drei: 0,037126064300537 Sekunden
Methode 4: 0,045628070831299 Sekunden
Methode fünf: 0,023991823196411 Sekunden
Originaltext: http://www.ludou.org/how-to-generate-lated-posts-in-wordpress.html