WordPRess memiliki banyak plugin untuk mengimplementasikan fungsi artikel terkait. Keuntungan dari plugin adalah mudah dikonfigurasi, namun mungkin berdampak kecil pada kecepatan situs web, sehingga banyak orang masih lebih suka menggunakan kode untuk mencapainya. fungsi-fungsi yang diperlukan, namun sekali lagi, implementasi kode juga memiliki kekurangan yaitu konfigurasinya rumit, dan orang yang tidak memahami kode menjadi bingung atau hanya dapat menyalin kode orang lain.
Di sini saya telah mengumpulkan beberapa cara menggunakan kode untuk mengimplementasikan artikel terkait. Fungsi setiap bagian kode akan ditandai dengan jelas, serta cara menyesuaikan fungsi yang Anda inginkan ada pertanyaan, Anda dapat mempostingnya ke artikel ini dan saya akan segera membalas Anda. Sebelum kita mulai, izinkan saya menjelaskan bahwa format kode HTML yang dihasilkan dengan semua metode berikut adalah dalam bentuk berikut, dan Anda dapat memodifikasinya sesuai kebutuhan:
<ul id="xxx">
<li>* <a title="Judul artikel 1" rel="bookmark" href="Link artikel 1">Judul artikel 1</a></li>
<li>* <a title="Judul artikel 2" rel="bookmark" href="Link artikel 2">Judul artikel 2</a></li>
...
</ul>
Metode 1: Terkait tag
Pertama-tama dapatkan semua tag artikel tersebut, lalu dapatkan n artikel di bawah tag tersebut, maka n artikel tersebut adalah artikel yang terkait dengan artikel tersebut. Semua plugin artikel terkait WordPress yang dapat dilihat sekarang menggunakan metode ini. Berikut adalah kode yang diterapkan:
<ul id="tags_related">
<?php
$post_tags = wp_get_post_tags($post->ID);
jika ($post_tags) {
foreach ($post_tags sebagai $tag)
{
// Dapatkan daftar tag
$tag_list[] .= $tag->term_id;
}
// Dapatkan tag secara acak dari daftar tag
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
// Metode ini menggunakan fungsi query_posts() untuk memanggil artikel terkait. Berikut ini adalah daftar parameternya
$args = susunan(
'tag__di' => larik($post_tag),
'category__not_in' => array(NULL), // ID kategori tidak disertakan
'post__not_in' => array($post->ID),
'showposts' => 6, // Menampilkan jumlah artikel terkait
'penelepon_get_posts' => 1
);
query_posts($args);
jika (memiliki_posting()) :
sementara (memiliki_posts()): the_post(); update_post_caches($posts);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ></li>
<?php sementara itu; yang lain : ?>
<li>* Belum ada artikel terkait</li>
<?php endif;wp_reset_query();
</ul>
Petunjuk penggunaan: "ID kategori yang dikecualikan" berarti artikel terkait tidak menampilkan artikel dalam kategori ini. Cukup ubah NULL di baris yang sama menjadi ID kategori artikel. Gunakan koma setengah lebar untuk memisahkan beberapa ID. Karena hanya 6 artikel terkait yang ditampilkan di sini, tidak peduli berapa banyak nilai yang ditetapkan ke parameter tag__in dari query_posts(), hanya 6 artikel dalam satu tag yang akan ditampilkan, kecuali tag pertama memiliki 1 artikel dan tag kedua memiliki 2 artikel, dan yang ketiga memiliki 3 artikel. . . . . . Jadi jika artikel ini memiliki banyak tag, maka yang kita lakukan adalah mendapatkan id dari sebuah tag secara acak, menetapkannya ke parameter tag__in, dan mendapatkan 6 artikel di bawah tag tersebut.
Metode 2: Terkait klasifikasi
Metode ini mencapai tujuan memperoleh artikel terkait dengan memperoleh id kategori artikel, dan kemudian memperoleh artikel dalam kategori tersebut.
<ul id="cat_related">
<?php
$kucing = wp_get_post_categories($post->ID);
if ($kucing) {
$kucing = get_category( $kucing[0] );
$kucing_pertama = $kucing->ID_kucing;
$args = susunan(
'kategori__dalam' => array($kucing_pertama),
'post__not_in' => array($post->ID),
'postingan' => 6,
'penelepon_get_posts' => 1);
query_posts($args);
jika (memiliki_posting()) :
sementara (memiliki_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 sementara itu; yang lain : ?>
<li>* Belum ada artikel terkait</li>
<?php endif;wp_reset_query();
</ul>
Metode 3: Terkait tag, akuisisi SQL
Prinsip mendapatkan artikel terkait mirip dengan metode 1, tetapi saat memperoleh artikel, pernyataan SQL digunakan untuk membaca database secara langsung, sehingga secara acak memperoleh 6 catatan artikel terkait, alih-alih fungsi WordPress query_posts().
<ul id="tags_related">
<?php
$post_tags = wp_get_post_tags($post->ID);
jika ($post_tags) {
foreach ($post_tags sebagai $tag)
{
// Dapatkan daftar tag
$tag_list[] .= $tag->term_id;
}
// Dapatkan tag secara acak dari daftar tag
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
$terkait = $wpdb->dapatkan_hasil("
PILIH {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.guid
DARI {$wpdb->prefix}postingan, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
DIMANA {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
DAN {$wpdb->prefix}term_taxonomy.taxonomy = 'post_tag'
DAN {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}
term_relationships.term_taxonomy_id
DAN {$wpdb->prefix}posts.post_status = 'terbitkan'
DAN {$wpdb->prefix}posts.post_type = 'posting'
DAN {$wpdb->prefix}term_taxonomy.term_id = '" .$post_tag . "'
DAN {$wpdb->prefix}posts.ID != '" .$post->ID . "'
PESANAN OLEH RAND( )
BATAS 6");
// Angka 6 pada kode di atas adalah untuk membatasi perolehan hanya 6 artikel terkait.
// Dengan memodifikasi angka 6, Anda dapat mengubah jumlah artikel yang Anda inginkan
jika ( $terkait ) {
foreach ($terkait sebagai $related_post) {
?>
<li>* <a href="<?php echo $related_post->guid; ?>" rel="bookmark"
title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li>
<?php } } lain { ?>
<li>* Belum ada artikel terkait</li>
<?php } }?>
</ul>
Metode 4: Terkait klasifikasi, akuisisi SQL
Prinsip mendapatkan artikel terkait mirip dengan metode 2, tetapi saat memperoleh artikel, pernyataan SQL digunakan untuk membaca database secara langsung, sehingga secara acak memperoleh 6 catatan artikel terkait, alih-alih fungsi WordPress query_posts().
<ul id="cat_related">
<?php
$kucing = wp_get_post_categories($post->ID);
if ($kucing) {
$kucing = get_category( $kucing[0] );
$kucing_pertama = $kucing->ID_kucing;
$terkait = $wpdb->dapatkan_hasil("
PILIH wp_posts.post_title, wp_posts.guid
DARI wp_posts, wp_term_relationships, wp_term_taxonomy
DI MANA wp_posts.ID = wp_term_relationships.object_id
DAN {$wpdb->prefix}term_taxonomy.taxonomy = 'kategori'
DAN {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
DAN {$wpdb->prefix}posts.post_status = 'terbitkan'
DAN {$wpdb->prefix}posts.post_type = 'posting'
DAN {$wpdb->prefix}term_taxonomy.term_id = '" .$first_cat . "'
DAN {$wpdb->prefix}posts.ID != '" .$post->ID . "'
PESANAN OLEH RAND( )
BATAS 6");
jika ( $terkait ) {
foreach ($terkait sebagai $related_post) {
?>
<li>* <a href="<?php echo $related_post->guid; ?>" rel="bookmark"
title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li>
<?php } } lain { ?>
<li>* Belum ada artikel terkait</li>
<?php } }?>
</ul>
Metode 5: Terkait penulis
Caranya adalah dengan mendapatkan artikel lain dari penulis artikel ini untuk dijadikan artikel terkait. Kodenya adalah sebagai berikut:
<ul id="penulis_terkait">
<?php
$post_author = get_the_author_meta( 'user_login' );
$args = susunan(
'nama_penulis' => $post_author,
'post__not_in' => array($post->ID),
'showposts' => 6, // Menampilkan jumlah artikel terkait
'orderby' => tanggal, // Urutkan berdasarkan waktu
'penelepon_get_posts' => 1
);
query_posts($args);
jika (memiliki_posting()) :
sementara (memiliki_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 sementara itu; yang lain : ?>
<li>* Belum ada artikel terkait</li>
<?php endif;wp_reset_query();
</ul>
Perbandingan efisiensi waktu
Kami akan menggunakan kode PHP sebelumnya untuk mengukur waktu eksekusi kode dari setiap artikel terkait di atas untuk mengevaluasi efisiensi masing-masing metode di atas dan memberikan referensi untuk pilihan Anda. Berikut ini untuk memperoleh 6 artikel terkait dalam artikel yang sama. Waktu perhitungan akhir dari masing-masing cara diatas adalah sebagai berikut:
Metode 1: 0,18067908287048 detik
Metode 2: 0,057158946990967 detik
Metode ketiga: 0,037126064300537 detik
Metode 4: 0,045628070831299 detik
Metode lima: 0,023991823196411 detik
Teks asli: http://www.ludou.org/how-to-generate-related-posts-in-wordpress.html