wordpress按分类ID调用最新、推荐、随机内容

建站知识 2025-02-26 63

在WordPress中,可以通过自定义查询(WP_Query)来按分类ID调用最新、推荐(自定义字段或标签)、随机内容。以下是一些示例代码,帮助你实现这些功能。

1. 按分类ID调用最新内容

以下代码可以调用指定分类ID下的最新文章:

<?php
// 设置分类ID和文章数量
$category_id = 1; // 替换为你的分类ID
$posts_per_page = 5; // 显示的文章数量

$args = array(
    'post_type' => 'post', // 文章类型
    'posts_per_page' => $posts_per_page, // 每页显示的文章数量
    'orderby' => 'date', // 按日期排序
    'order' => 'DESC', // 降序排列(最新文章在前)
    'cat' => $category_id // 指定分类ID
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        ?>
        <div class="post-item">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <p><?php the_excerpt(); ?></p>
        </div>
        <?php
    }
} else {
    echo '<p>没有找到文章。</p>';
}

wp_reset_postdata(); // 重置查询
?>

2. 按分类ID调用推荐内容

推荐内容可以通过自定义字段或标签实现。假设你使用自定义字段is_recommended来标记推荐文章(值为true或1):

<?php
$category_id = 1; // 替换为你的分类ID
$posts_per_page = 5; // 显示的文章数量

$args = array(
    'post_type' => 'post',
    'posts_per_page' => $posts_per_page,
    'orderby' => 'date', // 按日期排序
    'order' => 'DESC', // 降序排列
    'cat' => $category_id,
    'meta_query' => array( // 自定义字段查询
        array(
            'key' => 'is_recommended', // 自定义字段名称
            'value' => 'true', // 自定义字段值
            'compare' => '='
        )
    )
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        ?>
        <div class="post-item">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <p><?php the_excerpt(); ?></p>
        </div>
        <?php
    }
} else {
    echo '<p>没有找到推荐文章。</p>';
}

wp_reset_postdata(); // 重置查询
?>

调用随机内容

以下代码可以调用指定分类ID下的随机文章:

<?php
$category_id = 1; // 替换为你的分类ID
$posts_per_page = 5; // 显示的文章数量

$args = array(
    'post_type' => 'post',
    'posts_per_page' => $posts_per_page,
    'orderby' => 'rand', // 随机排序
    'cat' => $category_id
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        ?>
        <div class="post-item">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <p><?php the_excerpt(); ?></p>
        </div>
        <?php
    }
} else {
    echo '<p>没有找到文章。</p>';
}

wp_reset_postdata(); // 重置查询
?>

推荐模板