为什么让WordPress自定义文章置顶?
如果您为WordPress网站创建了不同格式的内容,例如书评网站,您可能已经创建了“书评”这一自定义文章类型。将重要内容置顶是突出时效性和受欢迎内容的最佳方式之一。然而,WordPress默认的置顶功能不适用于自定义文章类型。
在自定义文章类型中添加置顶文章
首先,您需要安装并激活“Sticky Posts – Switch”插件。在激活后,访问插件设置页面,勾选您希望置顶的自定义文章类型,例如“书评”。保存更改后,在该自定义文章类型的管理页面,您会看到一个新列,点击星标即可置顶文章。
在自定义文章归档中显示置顶文章
要将置顶文章显示在自定义文章归档页面顶部,需创建新的模板文件。使用FTP客户端或文件管理器,进入网站的/wp-content/themes/YOURTHEME/目录,创建一个新文件,例如archive-POSTTYPE.php,将archive.php的内容复制粘贴到这个新文件中。
之后,在主题的functions.php文件或代码片段插件中添加以下代码:
function wpb_cpt_sticky_at_top( $posts ) {
if ( is_main_query() && is_post_type_archive() ) {
global $wp_query;
$sticky_posts = get_option( 'sticky_posts' );
$num_posts = count( $posts );
$sticky_offset = 0;
for ($i = 0; $i < $num_posts; $i++) {
if ( in_array( $posts[$i]->ID, $sticky_posts ) ) {
$sticky_post = $posts[$i];
array_splice( $posts, $i, 1 );
array_splice( $posts, $sticky_offset, 0, array($sticky_post) );
$sticky_offset++;
$offset = array_search($sticky_post->ID, $sticky_posts);
unset( $sticky_posts[$offset] );
}
}
if ( !empty( $sticky_posts) ) {
$stickies = get_posts( array(
'post__in' => $sticky_posts,
'post_type' => $wp_query->query_vars['post_type'],
'post_status' => 'publish',
'nopaging' => true
) );
foreach ( $stickies as $sticky_post ) {
array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) );
$sticky_offset++;
}
}
}
return $posts;
}
add_filter( 'the_posts', 'wpb_cpt_sticky_at_top' );
function cpt_sticky_class($classes) {
if ( is_sticky() ) :
$classes[] = 'sticky';
return $classes;
endif;
return $classes;
}
add_filter('post_class', 'cpt_sticky_class');
此代码将置顶文章移至顶部,并在主题的样式表中应用“sticky”类名,从而您可以使用CSS对其进行样式化。
使用以下示例代码在style.css文件中调整样式:
.sticky {
background-color:#ededed;
background-image:url('http://example.com/wp-content/uploads/featured.png');
background-repeat:no-repeat;
background-position:right top;
}
我们希望这篇教程能帮助您在WordPress自定义文章类型归档中添加置顶文章,您可能还会对以下内容感兴趣:
- 如何在WordPress中快速轻松地添加置顶文章
- 如何为分类目录添加置顶文章
- WordPress中置顶文章的更多妙用
- 如何从循环中排除置顶文章
- 如何重新排序WordPress中的文章
- 如何创建粘性浮动导航菜单
- 如何创建粘性浮动侧边栏小部件
- 如何创建粘性浮动页脚栏
如果您喜欢本文,请订阅我们的YouTube频道,获取更多WordPress视频教程。您还可以在推特和Facebook上找到我们。