在开发WordPress CMS主题时,我们常常需要将最新文章列表与置顶文章列表分开显示。然而,在调用最新文章列表时,如果博客中存在置顶文章,这些置顶文章通常会优先显示在最新文章列表的最前面。为了解决这个问题,可以通过设置参数 caller_get_posts 来排除置顶文章对最新文章列表的影响。

 

以下是一个具体的实现方法:


// 设置显示的文章数量
$post_num = 10;

// 定义查询参数
$args = array(
    'post_status' => 'publish', // 只显示已发布的文章
    'paged' => $paged,         // 支持分页功能
    'caller_get_posts' => 1,   // 排除置顶文章
    'posts_per_page' => $post_num // 每页显示的文章数量
);

// 调用查询函数
query_posts($args);

// 主循环开始
if (have_posts()) : while (have_posts()) : the_post();
?>
    

    

没有找到相关文章。

 

在这个代码示例中,关键点在于 caller_get_posts 参数的使用。这个参数的作用是告诉 WordPress 在查询文章时忽略置顶文章。需要注意的是,从 WordPress 3.1 版本开始,caller_get_posts 已被弃用,取而代之的是 ignore_sticky_posts 参数。

因此,如果你使用的是较新的 WordPress 版本,可以将上述代码中的 caller_get_posts 替换为 ignore_sticky_posts,并将其值设置为 1true

 

以下是更新后的代码:


// 设置显示的文章数量
$post_num = 10;

// 定义查询参数
$args = array(
    'post_status' => 'publish', // 只显示已发布的文章
    'paged' => $paged,         // 支持分页功能
    'ignore_sticky_posts' => 1, // 排除置顶文章
    'posts_per_page' => $post_num // 每页显示的文章数量
);

// 调用查询函数
query_posts($args);

// 主循环开始
if (have_posts()) : while (have_posts()) : the_post();
?>
    

    

没有找到相关文章。

 

通过以上方法,你可以轻松地将最新文章列表与置顶文章列表分开显示,从而提升用户体验和网站的专业性。记得在实际应用中测试不同版本的兼容性,并根据需要调整代码逻辑。