WordPRess มีปลั๊กอินมากมายสำหรับใช้งานฟังก์ชันบทความที่เกี่ยวข้อง ข้อดีของปลั๊กอินคือกำหนดค่าได้ง่าย แต่อาจมีผลกระทบเล็กน้อยต่อความเร็วของเว็บไซต์ ผู้คนจำนวนมากยังคงต้องการใช้โค้ดเพื่อให้บรรลุผล ฟังก์ชั่นที่จำเป็น แต่แล้วอีกครั้ง การใช้โค้ดก็มีข้อเสียคือการกำหนดค่ามีความซับซ้อน และผู้ที่ไม่เข้าใจโค้ดจะสับสนโดยสิ้นเชิงหรือสามารถคัดลอกโค้ดของผู้อื่นได้เท่านั้น ควรใช้ปลั๊กอินจะดีกว่า
ที่นี่ฉันได้รวบรวมวิธีการใช้โค้ดเพื่อใช้งานบทความที่เกี่ยวข้องไว้หลายวิธี ฟังก์ชันของแต่ละส่วนของโค้ดจะถูกทำเครื่องหมายไว้อย่างชัดเจน รวมถึงวิธีปรับแต่งฟังก์ชันที่คุณต้องการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากมีคำถามใด ๆ คุณสามารถโพสต์ไว้ในบทความนี้ได้แสดงความคิดเห็นแล้วฉันจะตอบกลับคุณทันที ก่อนที่เราจะเริ่มต้น ให้ฉันอธิบายว่ารูปแบบโค้ด HTML ที่ส่งออกโดยวิธีต่อไปนี้ทั้งหมดอยู่ในรูปแบบต่อไปนี้ และคุณสามารถแก้ไขได้ตามต้องการ:
<ul id="xxx">
<li>* <a title="ชื่อบทความ 1" rel="bookmark" href="ลิงก์บทความ 1">ชื่อบทความ 1</a></li>
<li>* <a title="ชื่อบทความ 2" rel="bookmark" href="Article link 2">ชื่อบทความ 2</a></li>
-
</ul>
วิธีที่ 1: แท็กที่เกี่ยวข้อง
อันดับแรก ให้รับแท็กทั้งหมดของบทความ จากนั้นรับ n บทความภายใต้แท็กเหล่านี้ จากนั้น n บทความเหล่านี้จะเป็นบทความที่เกี่ยวข้องกับบทความ ปลั๊กอินบทความที่เกี่ยวข้องกับ WordPress ทั้งหมดที่เห็นได้ในขณะนี้ใช้วิธีนี้ นี่คือรหัสที่นำไปใช้:
<ul id="tags_เกี่ยวข้องกับ">
<?php
$post_tags = wp_get_post_tags($post->ID);
ถ้า ($post_tags) {
foreach ($post_tags เป็น $tag)
-
// รับรายการแท็ก
$tag_list[] .= $tag->term_id;
-
// สุ่มรับแท็กจากรายการแท็ก
$post_tag = $tag_list[ mt_rand(0, นับ($tag_list) - 1) ];
// เมธอดนี้ใช้ฟังก์ชัน query_posts() เพื่อเรียกบทความที่เกี่ยวข้อง ต่อไปนี้เป็นรายการพารามิเตอร์
$args = อาร์เรย์(
'tag__in' => อาร์เรย์($post_tag),
'category__not_in' => array(NULL), // ไม่รวม ID หมวดหมู่
'post__not_in' => array($post->ID)
'showposts' => 6, // แสดงจำนวนบทความที่เกี่ยวข้อง
'caller_get_posts' => 1
-
query_posts($args);
ถ้า (have_posts()) :
ในขณะที่ (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 : ?>
<li>* ยังไม่มีบทความที่เกี่ยวข้อง</li>
<?php endif; wp_reset_query(); } ?>
</ul>
คำแนะนำในการใช้งาน: "รหัสหมวดหมู่ที่ยกเว้น" หมายความว่าบทความที่เกี่ยวข้องไม่แสดงบทความภายใต้หมวดหมู่นี้ เพียงเปลี่ยน NULL ในแถวเดียวกันเป็น ID ของหมวดหมู่บทความ เนื่องจากแสดงบทความที่เกี่ยวข้องเพียง 6 บทความที่นี่ ไม่ว่าจะกำหนดค่าให้กับพารามิเตอร์ tag__in ของ query_posts( กี่ค่าก็ตาม) จะแสดงเพียง 6 บทความภายใต้แท็กเดียว เว้นแต่แท็กแรกจะมี 1 บทความและแท็กที่สอง มี 2 บทความ และบทความที่สามมี 3 บทความ - - - - - ดังนั้นหากบทความนี้มีหลายแท็ก สิ่งที่เราทำคือการสุ่มรับ ID ของแท็ก กำหนดให้กับพารามิเตอร์ tag__in และรับ 6 บทความใต้แท็ก
วิธีที่ 2: การจำแนกประเภทที่เกี่ยวข้อง
วิธีการนี้บรรลุวัตถุประสงค์ในการรับบทความที่เกี่ยวข้องโดยรับรหัสหมวดหมู่ของบทความ จากนั้นรับบทความภายใต้หมวดหมู่นี้
<ul id="cat_ related">
<?php
$cats = wp_get_post_categories($post->ID);
ถ้า ($ แมว) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID;
$args = อาร์เรย์(
'category__in' => อาร์เรย์($first_cat)
'post__not_in' => array($post->ID),
'โพสต์โชว์' => 6,
'caller_get_posts' => 1);
query_posts($args);
ถ้า (have_posts()) :
ในขณะที่ (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 : ?>
<li>* ยังไม่มีบทความที่เกี่ยวข้อง</li>
<?php endif; wp_reset_query(); } ?>
</ul>
วิธีที่ 3: แท็กที่เกี่ยวข้องกับการได้มาของ SQL
หลักการรับบทความที่เกี่ยวข้องจะคล้ายกับวิธีที่ 1 แต่เมื่อรับบทความ คำสั่ง SQL จะถูกใช้เพื่ออ่านฐานข้อมูลโดยตรง ดังนั้นจึงสุ่มรับบันทึกบทความที่เกี่ยวข้อง 6 รายการ แทนที่จะเป็นฟังก์ชัน WordPress query_posts()
<ul id="tags_เกี่ยวข้องกับ">
<?php
$post_tags = wp_get_post_tags($post->ID);
ถ้า ($post_tags) {
foreach ($post_tags เป็น $tag)
-
// รับรายการแท็ก
$tag_list[] .= $tag->term_id;
-
// สุ่มรับแท็กจากรายการแท็ก
$post_tag = $tag_list[ mt_rand(0, นับ($tag_list) - 1) ];
$ที่เกี่ยวข้อง = $wpdb->get_results("
เลือก {$wpdb->คำนำหน้า}posts.post_title, {$wpdb->คำนำหน้า}posts.guid
จาก {$wpdb->คำนำหน้า} โพสต์ {$wpdb->คำนำหน้า}term_relationships, {$wpdb->คำนำหน้า}term_taxonomy
โดยที่ {$wpdb->คำนำหน้า}posts.ID = {$wpdb->คำนำหน้า}term_relationships.object_id
และ {$wpdb->คำนำหน้า}term_taxonomy.taxonomy = 'post_tag'
และ {$wpdb->คำนำหน้า}term_taxonomy.term_taxonomy_id = {$wpdb->คำนำหน้า}
term_relationships.term_taxonomy_id
และ {$wpdb->คำนำหน้า}posts.post_status = 'เผยแพร่'
และ {$wpdb->คำนำหน้า}posts.post_type = 'โพสต์'
และ {$wpdb->คำนำหน้า}term_taxonomy.term_id = '" . $post_tag . "'
และ {$wpdb->prefix}posts.ID != '" . $post->ID . "'
เรียงตามแรนด์( )
จำกัด 6");
// 6 ในโค้ดข้างต้นเป็นการจำกัดการได้มาของบทความที่เกี่ยวข้องเพียง 6 บทความ
// โดยการแก้ไขหมายเลข 6 คุณสามารถแก้ไขจำนวนบทความที่คุณต้องการได้
ถ้า ( $ เกี่ยวข้อง ) {
foreach ($เกี่ยวข้องกับ $ related_post) {
-
<li>* <a href="<?php echo $ related_post->guid; ?>" rel="บุ๊กมาร์ก"
title="<?php echo $ related_post->post_title; ?>"><?php echo $ related_post->post_title; ?></a></li>
<?php } } อื่น ๆ { ?>
<li>* ยังไม่มีบทความที่เกี่ยวข้อง</li>
<?php } }?>
</ul>
วิธีที่ 4: การจำแนกประเภทที่เกี่ยวข้อง การได้มาของ SQL
หลักการรับบทความที่เกี่ยวข้องจะคล้ายกับวิธีที่ 2 แต่เมื่อได้รับบทความ คำสั่ง SQL จะถูกใช้เพื่ออ่านฐานข้อมูลโดยตรง ดังนั้นจึงสุ่มรับบันทึกบทความที่เกี่ยวข้อง 6 รายการ แทนที่จะเป็นฟังก์ชัน WordPress query_posts()
<ul id="cat_ related">
<?php
$cats = wp_get_post_categories($post->ID);
ถ้า ($ แมว) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID;
$ที่เกี่ยวข้อง = $wpdb->get_results("
เลือก wp_posts.post_title, wp_posts.guid
จาก wp_posts, wp_term_relationships, wp_term_taxonomy
โดยที่ wp_posts.ID = wp_term_relationships.object_id
และ {$wpdb->คำนำหน้า}term_taxonomy.taxonomy = 'หมวดหมู่'
และ {$wpdb->คำนำหน้า}term_taxonomy.term_taxonomy_id = {$wpdb->คำนำหน้า}term_relationships.term_taxonomy_id
และ {$wpdb->คำนำหน้า}posts.post_status = 'เผยแพร่'
และ {$wpdb->คำนำหน้า}posts.post_type = 'โพสต์'
และ {$wpdb->คำนำหน้า}term_taxonomy.term_id = '" . $first_cat . "'
และ {$wpdb->prefix}posts.ID != '" . $post->ID . "'
เรียงตามแรนด์( )
จำกัด 6");
ถ้า ( $ เกี่ยวข้อง ) {
foreach ($เกี่ยวข้องกับ $ related_post) {
-
<li>* <a href="<?php echo $ related_post->guid; ?>" rel="บุ๊กมาร์ก"
title="<?php echo $ related_post->post_title; ?>"><?php echo $ related_post->post_title; ?></a></li>
<?php } } อื่น ๆ { ?>
<li>* ยังไม่มีบทความที่เกี่ยวข้อง</li>
<?php } }?>
</ul>
วิธีที่ 5: เกี่ยวข้องกับผู้เขียน
วิธีนี้คือการรับบทความอื่น ๆ โดยผู้เขียนบทความนี้เพื่อใช้เป็นบทความที่เกี่ยวข้อง รหัสจะเป็นดังนี้:
<ul id="author_ related">
<?php
$post_author = get_the_author_meta( 'user_login' );
$args = อาร์เรย์(
'author_name' => $post_author,
'post__not_in' => array($post->ID),
'showposts' => 6, // แสดงจำนวนบทความที่เกี่ยวข้อง
'orderby' => date, // เรียงตามเวลา
'caller_get_posts' => 1
-
query_posts($args);
ถ้า (have_posts()) :
ในขณะที่ (have_posts()) : the_post(); update_post_caches($posts); ?>
<li>* <a href="<?php the_permalink(); ?>" rel="บุ๊กมาร์ก"
title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php ในตอนท้าย; else : ?>
<li>* ยังไม่มีบทความที่เกี่ยวข้อง</li>
<?php endif; wp_reset_query(); ?>
</ul>
การเปรียบเทียบประสิทธิภาพด้านเวลา
เราจะใช้โค้ด PHP ก่อนหน้าเพื่อวัดเวลาดำเนินการโค้ดของแต่ละบทความที่เกี่ยวข้องข้างต้น เพื่อประเมินประสิทธิภาพของแต่ละวิธีข้างต้น และให้ข้อมูลอ้างอิงสำหรับตัวเลือกของคุณ ต่อไปนี้จะได้รับ 6 บทความที่เกี่ยวข้องในบทความเดียวกัน เวลาการคำนวณขั้นสุดท้ายของแต่ละวิธีข้างต้นเป็นดังนี้:
วิธีที่ 1: 0.18067908287048 วินาที
วิธีที่ 2: 0.057158946990967 วินาที
วิธีที่สาม: 0.037126064300537 วินาที
วิธีที่ 4: 0.045628070831299 วินาที
วิธีที่ห้า: 0.023991823196411 วินาที
ข้อความต้นฉบับ: http://www.ludou.org/how-to-generate- related -posts-in-wordpress.html