Wie implementiert WordPress verwandte Artikelfunktionen? Der folgende Artikel stellt Ihnen verschiedene Möglichkeiten vor, verwandte Artikel in WordPress-Code zu implementieren. Ich hoffe, er wird Ihnen hilfreich sein!
Viele WordPress-Plug-Ins können die Funktionen verwandter Artikel implementieren, der Vorteil von Plug-Ins besteht darin, dass sie einfach zu konfigurieren sind, aber sie können einen kleinen Einfluss auf die Geschwindigkeit der Website haben, so viele Leute immer noch Bevorzugen Sie die Verwendung von Code, um die erforderlichen Funktionen zu erreichen. Andererseits weist die Code-Implementierung auch Mängel auf, das heißt, die Konfiguration ist kompliziert, und Personen, die den Code nicht verstehen, sind völlig verwirrt oder können nur den Code anderer Personen kopieren Besser Plug-Ins verwenden.
Hier habe ich verschiedene Möglichkeiten zusammengestellt, Code zum Implementieren verwandter Artikel zu verwenden. Die Funktionen jedes Teils des Codes werden detailliert beschrieben und es wird erläutert, wie Sie die gewünschten Funktionen anpassen können. Bevor wir beginnen, möchte ich erklären, dass das von allen folgenden Methoden ausgegebene HTML-Codeformat die folgende Form hat. Sie können es nach Bedarf ändern:
<ul id="xxx"> <li>* <a title="文章标题1" rel="bookmark" href="文章链接1">文章标题1</a></li> <li>* <a title="文章标题2" rel="bookmark" href="文章链接2">文章标题2</a></li> ...... </ul>
Holen Sie sich zuerst alle Tags des Artikels und erhalten Sie dann diese n Artikel unter dem Tag, dann sind diese n Artikel Artikel, die sich auf diesen Artikel beziehen. Alle WordPress-bezogenen Artikel-Plug-Ins, die jetzt angezeigt werden, verwenden diese Methode. Das Folgende ist der implementierte Code:
<ul id="tags_related"> <?php global $post; $post_tags = wp_get_post_tags($post->ID); if ($post_tags) { foreach ($post_tags as $tag) { // 获取标签列表 $tag_list[] .= $tag->term_id; } // 随机获取标签列表中的一个标签 $post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ]; // 该方法使用 query_posts() 函数来调用相关文章,以下是参数列表 $args = array( 'tag__in' => array($post_tag), 'category__not_in' => array(NULL), // 不包括的分类ID '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 } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); } else { echo '<li>* 暂无相关文章</li>'; } ?> </ul>
Gebrauchsanweisung: „Kategorie-ID nicht enthalten“ bezieht sich auf verwandte Artikel, die keine Artikel unter dieser Kategorie anzeigen. Ändern Sie einfach den NULL-Wert im Peer in die ID der Artikelkategorie IDs. Mit Kommas 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 diesem Tag ab.
Diese Methode erreicht den Zweck, verwandte Artikel zu erhalten, indem die Kategorie-ID des Artikels und dann die Artikel unter dieser Kategorie abgerufen werden.
<ul id="cat_related"><?phpglobal $post;$cats = wp_get_post_categories($post->ID);if ($cats) { $args = array( 'category__in' => array( $cats[0] ), '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 } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); }else { echo '<li>* 暂无相关文章</li>';}?></ul>
Das Prinzip zum Abrufen verwandter Artikel ähnelt der ersten Methode, aber beim Abrufen von Artikeln werden SQL-Anweisungen verwendet, um die Datenbank direkt zu lesen und so zufällig 6 verwandte Artikel zu erhalten Datensatz, anstelle der WordPress-Funktion query_posts().
<ul id="tags_related"><?phpglobal $post, $wpdb;$post_tags = wp_get_post_tags($post->ID);if ($post_tags) { $tag_list = ''; foreach ($post_tags as $tag) { // 获取标签列表 $tag_list .= $tag->term_id.','; } $tag_list = substr($tag_list, 0, strlen($tag_list)-1); $related_posts = $wpdb->get_results(" SELECT DISTINCT ID, post_title FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id AND ID = object_id AND taxonomy = 'post_tag' AND post_status = 'publish' AND post_type = 'post' AND term_id IN (" . $tag_list . ") AND ID != '" . $post->ID . "' ORDER BY RAND() LIMIT 6"); // 以上代码中的 6 为限制只获取6篇相关文章 // 通过修改数字 6,可修改你想要的文章数量 if ( $related_posts ) { foreach ($related_posts as $related_post) {?> <li><a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li><?php } } else { echo '<li>暂无相关文章</li>'; } }else { echo '<li>暂无相关文章</li>';}?></ul>
Das Prinzip zum Abrufen verwandter Artikel ähnelt Methode zwei, aber beim Abrufen von Artikeln werden SQL-Anweisungen direkt verwendet Lesen Sie die Datenbank, um anstelle der WordPress-Funktion query_posts() nach dem Zufallsprinzip 6 verwandte Artikeldatensätze zu erhalten Artikel, der Code lautet wie folgt:
<ul id="cat_related"><?phpglobal $post, $wpdb;$cats = wp_get_post_categories($post->ID);if ($cats) { $related = $wpdb->get_results(" SELECT post_title, ID FROM {$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 = 'category' AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id AND {$wpdb->prefix}posts.post_status = 'publish' AND {$wpdb->prefix}posts.post_type = 'post' AND {$wpdb->prefix}term_taxonomy.term_id = '" . $cats[0] . "' AND {$wpdb->prefix}posts.ID != '" . $post->ID . "' ORDER BY RAND( ) LIMIT 6"); if ( $related ) { foreach ($related as $related_post) {?> <li>* <a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li><?php } } else { echo '<li>* 暂无相关文章</li>'; } }else { echo '<li>* 暂无相关文章</li>';}?></ul>
Wir messen die Codeausführungszeit jedes der oben genannten verwandten Artikel, um die Effizienz jeder der oben genannten Methoden zu bewerten und eine Referenz dafür bereitzustellen Ihre Wahl. Im Folgenden erhalten Sie 6 verwandte Artikel im selben Artikel. Die endgültige Berechnungszeit für jede der oben genannten Methoden ist wie folgt:
Empfohlenes Lernen: „
WordPress-Tutorial“
Das obige ist der detaillierte Inhalt vonWie implementiert WordPress verwandte Artikelfunktionen? Mehrere Möglichkeiten zum Teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!