Wie implementiert WordPress verwandte Artikelfunktionen? Mehrere Möglichkeiten zum Teilen

青灯夜游
Freigeben: 2023-03-01 20:17:34
nach vorne
1313 Leute haben es durchsucht

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!

Wie implementiert WordPress verwandte Artikelfunktionen? Mehrere Möglichkeiten zum Teilen

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>
Nach dem Login kopieren

Methode 1: Tag-bezogen

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(
        &#39;tag__in&#39; => array($post_tag),
        &#39;category__not_in&#39; => array(NULL),  // 不包括的分类ID
        &#39;post__not_in&#39; => array($post->ID),
        &#39;showposts&#39; => 6,            // 显示相关文章数量
        &#39;caller_get_posts&#39; => 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 &#39;<li>* 暂无相关文章</li>&#39;;
  }
  wp_reset_query(); 
}
else {
  echo &#39;<li>* 暂无相关文章</li>&#39;;
}
?>
</ul>
Nach dem Login kopieren

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.

Methode 2: Kategoriebezogen

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(
		  &#39;category__in&#39; => array( $cats[0] ),
		  &#39;post__not_in&#39; => array( $post->ID ),
		  &#39;showposts&#39; => 6,
		  &#39;caller_get_posts&#39; => 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 &#39;<li>* 暂无相关文章</li>&#39;;
  }
  wp_reset_query(); }else {
  echo &#39;<li>* 暂无相关文章</li>&#39;;}?></ul>
Nach dem Login kopieren

Methode drei: Tag-bezogen, SQL-Erfassung

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 = &#39;&#39;;
    foreach ($post_tags as $tag) {
        // 获取标签列表
        $tag_list .= $tag->term_id.&#39;,&#39;;
    }
    $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 = &#39;post_tag&#39;
        AND post_status = &#39;publish&#39;
        AND post_type = &#39;post&#39;
        AND term_id IN (" . $tag_list . ")
        AND ID != &#39;" . $post->ID . "&#39;
        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 &#39;<li>暂无相关文章</li>&#39;;
    } }else {
  echo &#39;<li>暂无相关文章</li>&#39;;}?></ul>
Nach dem Login kopieren

Methode 4: Klassifizierungsbezogen, SQL-Erfassung

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 = &#39;category&#39;
  AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
  AND {$wpdb->prefix}posts.post_status = &#39;publish&#39;
  AND {$wpdb->prefix}posts.post_type = &#39;post&#39;
  AND {$wpdb->prefix}term_taxonomy.term_id = &#39;" . $cats[0] . "&#39;
  AND {$wpdb->prefix}posts.ID != &#39;" . $post->ID . "&#39;
  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 &#39;<li>* 暂无相关文章</li>&#39;;
  } }else {
  echo &#39;<li>* 暂无相关文章</li>&#39;;}?></ul>
Nach dem Login kopieren

Zeiteffizienzvergleich

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:

Methode 1: 0,18067908287048 Sekunden
Methode 2: 0,057158946990967 Sekunden

Methode 3: 0,037126064300537 Sekunden Methode 4: 0,045628070831299 Sekunden Methode 5: 0,023991823196411 Sekunden

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!

Verwandte Etiketten:
Quelle:ludou.org
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage