WordPress 插件开发 自定义文章类型 置顶

在WordPress中,原生是自带文章“在博客中置顶”这个功能选项的,但是我们在插件开发时如果自定义了文章的类型,那么这个按钮就无法显示,需要通过代码设置才能显示出来,下面我们记录一下具体的代码。

WordPress 插件开发 自定义文章类型 置顶

当前所使用主题的 functions.php 文件中

add_action( 'add_meta_boxes', 'jiloc_add_book_box' );
function jiloc_add_book_box(){
add_meta_box( 'jiloc_add_book_box', '自定义文章类型置顶', 'jiloc_sticky ', '自定义类型type', 'side', 'high' );
}
function jiloc_sticky (){ ?>
<input id="super-sticky" name="sticky" type="checkbox" value="sticky" <?php checked( is_sticky() ); ?> /><label for="super-sticky" class="selectit">置顶本产品</label>
<?php
}

效果如下

WordPress 插件开发 自定义文章类型 置顶

主题中输出置顶文章代码

$sticky = get_option( 'sticky_posts' );
query_posts( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );

主题中输出非置顶文章代码

$sticky = get_option( 'sticky_posts' );
query_posts(array('ignore_sticky_posts' => 1,'post__not_in' => $sticky) );

不想把置顶文章和非置顶文章区分开来的话,直接把不输出置顶文章中的 ignore_sticky_posts 和 post__not_in 去掉即可正常输出,并且自动将置顶文章排在首位。

如果是正常输出文章让置顶文章自动置顶,那么我们很有必要在置顶文章标题后面或前面添加【置顶】标识,以便用户知道这是一篇置顶文章。方法也很简单,只需要在循环语句中的标题后面添加以下代码即可:

<?php if (is_sticky()) {?><span class="sticky-icon">置顶</span><?php } ?>

意思就是判定当前文章是否为置顶文章,是的话就输出置顶标识。

链接到文章: https://ixvps.com/46934.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注