一个置顶帖子的帖子将被放置在帖子顶部的顶部。 此功能仅适用于内置的帖子类型的帖子,而不适用于自定义的帖子类型。
如何置顶帖子
转到管理屏幕>帖子>添加新的或编辑
在右侧菜单中,单击发布组中的可见性编辑链接
点击粘贴此帖子到首页选项
##显示置顶的帖子
只显示第一个置顶的帖子。 至少有一个帖子必须指定为“置顶帖子”,否则循环将显示所有帖子:
$sticky = get_option( 'sticky_posts' );
$query = new WP_Query( 'p=' . $sticky[0] );
显示第一个置顶的帖子,如果没有返回最后发布的帖子:
$args = array(
'posts_per_page' => 1,
'post__in' => get_option( 'sticky_posts' ),
'ignore_sticky_posts' => 1
);
$query = new WP_Query( $args );
只显示第一个置顶帖子,如果没有返回任何内容:
$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...
}
不显示置顶帖子
从查询中排除所有置顶的帖子:
$query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
排除类别中的置顶帖子。 返回类别中的所有帖子,但不要在顶部显示置顶帖子。 “置顶”仍将显示在自然的位置(例如按日期):
$query = new WP_Query( 'ignore_sticky_posts=1&posts_per_page=3&cat=6' );
排除类别中的置顶帖子。 返回类别中的帖子,但完全置顶粘贴帖子,并遵守分页规则:
$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')。
<?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,只需添加:
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
post_class()输出该div的class="whatever"
片段。 这包括几个不同的价值类别:post,hentry(对于hAtom微格式页面),category-X(其中X是帖子的每个类别的块),以及tag-X(类似的,但带有标签)。 它还为标记为粘滞帖子的帖子添加了“粘性”。
.sticky { color:red; }
注意:只有在主页的第一页(is_home()为true并且is_paged()为false)的置顶帖子中才添加“sticky”类。