建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

wordpress制作模版时调用置顶文章(WordPress如何在首页主循环中排除置顶文章)

GG网络技术分享 2025-03-18 16:13 0


wordpress制作模版时调用置顶文章

我们在制作wordpress主题时,调用置顶文章是必不可少的一项功能,下面说如何在模版中调用置顶文章。

两个重要函数

置顶文章用到的两个重要函数

1、is_sticky() 判断文章是否置顶

2、get_option(‘sticky_posts’): 获取置顶文章ID,包含所有置顶文章ID的数组

用query_post调用置顶文章

上面就是在query_post中调用文章的方法,具体解释一下

‘post__in’ => get_option(‘sticky_posts’), //在置顶文章中调取文章
‘posts_per_page’ => 5, //获取五篇置顶文章
‘ignore_sticky_posts’ => 1 //默认值为0,不排除置顶文章

若是想排除置顶文章外的其余文章用 ‘post__not_in’ => get_option(‘sticky_posts’), 这样就可以在调用列表时排除置顶文章

用WP_Query调用置顶文章

和上面的方法有点类似

如果只显示置顶文章那么用is_sticky()判断即可。

WordPress如何在首页主循环中排除置顶文章

出于网站的开发需求,在主页主循环外的方位独自调用了网站的置顶文章,因为不想在主页呈现两块相同置顶文章的列表,所以要扫除主循环中最新文章前面的置顶文章。

wp自学笔记以前共享过通过query_posts()完成扫除置顶文章的教程《在wordpress最新文章列表中扫除置顶文章》,可是使用query_posts()很简单引起文章列表的分页问题,因而并不是很主张使用,这儿推荐使用下面的代码。

把下面的代码添加到当前主题的functions.php文件,保存即可:

function exclude_sticky_posts($query){    if ( is_admin() || ! $query->is_main_query() )    return;    if ( $query->is_home() && $query->is_main_query() ) {        $query->set( \\\'ignore_sticky_posts\\\', 1 );    }}  add_action(\\\'pre_get_posts\\\',\\\'exclude_sticky_posts\\\');

如果要排除其它页面的,就把代码中的is_home()改一下即可。

标签:

提交需求或反馈

Demand feedback