wordpress默认的置顶功能很好用,但是只能在默认的“post”中使用,如何在自定义文章类型中添加置顶功能呢?

注意:本篇教程的自定义文章类型置顶功能经测试仅首页有效。

要置顶自定义文章类型,首先得在首页中显示自定义文章类型的文章,比如企业站中注册了一个名为product的产品文章类型,首先将产品显示在首页,参考:wordpress在首页显示或只显示自定义文章类型,或者在functions.php文件中加入下面代码,让首页只显示产品:


function ashuwp_posts_per_page($query){
  if ( is_home() )
    $query->set( 'post_type', array( 'product' ) );
  return $query;
}
add_action('pre_get_posts','ashuwp_posts_per_page');

方法:在文章编辑页面添加自定义字段。不管使用什么方法,请在后台文章编辑页面添加一个复选框checkbox,html结构如下即可:


<input id="super-sticky" name="sticky" type="checkbox" value="sticky" /><label for="super-sticky" class="selectit">置顶</label>

上面代码中checkbox的name和value必须为sticky。

如何添加此自定义字段?

直接在functions.php文件中添加如下代码,新增自定义字段面板:


add_action( 'add_meta_boxes', 'ashuwp_add_product_box' );
function ashuwp_add_product_box(){
  add_meta_box( 'ashuwp_product_sticky', '置顶', 'ashuwp_product_sticky', 'product', 'side', 'high' );
}
function ashuwp_product_sticky (){ ?>
  <input id="super-sticky" name="sticky" type="checkbox" value="sticky" <?php checked( is_sticky() ); ?> /><label for="super-sticky" class="selectit">置顶本产品</label>
<?php
}

添加完自定义面板,置顶功能即可用。