我想要在每篇文章的最下方顯示相關的文章(同分類),並且排除掉當前的文章
在程式碼片段新增function
將代碼複製、貼上
// 在文章下方顯示相關文章
function display_related_posts() {
// 獲取當前文章的分類
$categories = get_the_category();
// 檢查是否有分類
if ($categories) {
$category_ids = array();
// 獲取分類的 ID
foreach ($categories as $category) {
$category_ids[] = $category->term_id;
}
// 構建相關文章查詢參數
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 8, // 設置顯示的相關文章數量
'category__in' => $category_ids,
'post__not_in' => array(get_the_ID()), // 排除當前文章
);
// 執行相關文章查詢
$related_query = new WP_Query($args);
// 檢查是否有相關文章
if ($related_query->have_posts()) {
echo '<div class="related-posts">';
echo '<h3>相關文章</h3>';
echo '<ul>';
// 輸出相關文章的卡片
while ($related_query->have_posts()) {
$related_query->the_post();
echo '<li>';
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
echo '</li>';
}
echo '</ul>';
echo '</div>';
// 重置文章查詢
wp_reset_postdata();
}
}
}
function display_related_posts_after_content($content) {
if (is_single()) {
ob_start();
display_related_posts();
$related_posts_content = ob_get_clean();
$content .= '<div class="related-posts">' . $related_posts_content . '</div>';
}
return $content;
}
add_filter('the_content', 'display_related_posts_after_content');
完成後啟用
到每文章底下就會出現相同分類的文章標題