如何为WordPress自定义文章类型添加置顶功能

  • 酉灿
  • WordPress
  • Jul 27, 2021

WordPress默认文章类型post在编辑窗口的“可见性”右边的“编辑”中提供了“将文章置于首页顶端”的选项设置,即我们常说的置顶功能。

但是在WordPress自定义的文章类型中并没有置顶功能的选项,而且创建自定义文章类型的函数里面也没有对应的参数来实现该功能,所以我们只有另想他法来解决为WordPress自定义文章类型添加置顶功能。

下面是给wordpress自定义文章类型添加置顶选项设置的实现代码,可根据步骤添加:

1、在主题的functions.php文件添加代码:

<?php 
add_action( 'add_meta_boxes', 'add_product_box' );
function add_product_box(){
    add_meta_box( 'product_sticky', '文章置顶', 'product_sticky', 'product_type', 'side', 'high' );
}
function product_sticky (){
?>
<ul>
    <li style="margin-top:6px;">
        <input id="super-sticky" name="sticky" type="checkbox" value="sticky" <?php checked( is_sticky() ); ?>/> <label for="super-sticky" class="selectit" style="vertical-align: top">推荐阅读</label>
    </li>    
</ul>
<?php } ?>

上面就是实现该功能的代码,但是有点需要你自己更改下:修改第三行add_meta_box()里的product_type为自己的自定义文章类型即可,其余参数可以根据需要修改。

到这一步已经实现这个功能,但是如何在调用该推荐阅读呢?其实很简单,调用代码与wordpress默认文章类型的置顶文章调用一致,代码如下

<?php 
    $sticky = get_option('sticky_posts');			
    query_posts( array('showposts'=>'10', 'post__in' => $sticky, 'ignore_sticky_posts' => 1,'post_status' => 'publish','post_type' => 'product_type' ) );
    if (have_posts()) :
        while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php 
        endwhile;
    endif; 
    wp_reset_query();
?>
打赏