一个置顶帖子的帖子将被放置在帖子顶部的顶部。 此功能仅适用于内置的帖子类型的帖子,而不适用于自定义的帖子类型。
如何置顶帖子
转到管理屏幕>帖子>添加新的或编辑
在右侧菜单中,单击发布组中的可见性编辑链接
点击粘贴此帖子到首页选项
##显示置顶的帖子
只显示第一个置顶的帖子。 至少有一个帖子必须指定为“置顶帖子”,否则循环将显示所有帖子:
1 2 |
$sticky = get_option( 'sticky_posts' ); $query = new WP_Query( 'p=' . $sticky[0] ); |
显示第一个置顶的帖子,如果没有返回最后发布的帖子:
1 2 3 4 5 6 |
$args = array( 'posts_per_page' => 1, 'post__in' => get_option( 'sticky_posts' ), 'ignore_sticky_posts' => 1 ); $query = new WP_Query( $args ); |
只显示第一个置顶帖子,如果没有返回任何内容:
1 2 3 4 5 6 7 8 9 10 |
$sticky = get_option( 'sticky_posts' ); $args = array( 'posts_per_page' => 1, 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ); $query = new WP_Query( $args ); if ( isset( $sticky[0] ) ) { // insert here your stuff... } |
不显示置顶帖子
从查询中排除所有置顶的帖子:
1 |
$query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) ); |
排除类别中的置顶帖子。 返回类别中的所有帖子,但不要在顶部显示置顶帖子。 “置顶”仍将显示在自然的位置(例如按日期):
1 |
$query = new WP_Query( 'ignore_sticky_posts=1&posts_per_page=3&cat=6' ); |
排除类别中的置顶帖子。 返回类别中的帖子,但完全置顶粘贴帖子,并遵守分页规则:
1 2 3 4 5 6 7 8 9 |
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; $sticky = get_option( 'sticky_posts' ); $args = array( 'cat' => 3, 'ignore_sticky_posts' => 1, 'post__not_in' => $sticky, 'paged' => $paged ); $query = new WP_Query( $args ); |
注意:如果希望此查询在您设置为静态首页的页面模板中工作,请使用get_query_var(’page’)。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php /* Get all Sticky Posts */ $sticky = get_option( 'sticky_posts' ); /* Sort Sticky Posts, newest at the top */ rsort( $sticky ); /* Get top 5 Sticky Posts */ $sticky = array_slice( $sticky, 0, 5 ); /* Query Sticky Posts */ $query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) ); ?> |
风格置顶帖子
为了帮助主题作者执行更简单的样式,post_class()函数用于将class =“…”添加到DIV,只需添加:
1 |
" <?php post_class(); ?>> |
post_class()输出该div的class="whatever"
片段。 这包括几个不同的价值类别:post,hentry(对于hAtom微格式页面),category-X(其中X是帖子的每个类别的块),以及tag-X(类似的,但带有标签)。 它还为标记为粘滞帖子的帖子添加了“粘性”。
1 |
.sticky { color:red; } |
注意:只有在主页的第一页(is_home()为true并且is_paged()为false)的置顶帖子中才添加“sticky”类。