WordPress 添加Meta Box的方法

2019-02-19 14:33:37王振洲
  • function save_rating_post_data( $post_id ) {        // 检查nonce是否设置   
  •     if (!isset($_POST['rating_nonce_name'])) {            return $post_id;   
  •     }        $nonce = $_POST['rating_nonce_name'];   
  •        // 验证nonce是否正确   
  •     if (!wp_verify_nonce( $nonce, 'rating_nonce_action')) {            return $post_id;   
  •     }      
  •     // 如果是系统自动保存,则不操作        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {   
  •         return $post_id;        }   
  •             // 检查用户权限   
  •     if ($_POST['post_type'] == 'post') {            if (!current_user_can('edit_post', $post_id )) {   
  •             return $post_id;            }   
  •     }      
  •     $rating_key = 'rating';        // 获取数据   
  •     $rating_value = $_POST['rating_field'];      
  •     // 更新数据        update_post_meta( $post_id, $rating_key, $rating_value );   
  • }    add_action( 'save_post', 'save_rating_post_data' );  
    这里做了一系列检查,包括对刚刚设置的nonce检查,用户权限的检查,排除自动保存的情况。然后使用update_post_meta()方法将数据存入数据库。

    至此,我们就完成了对推荐指数自定义字段的改装,可以很方便的选择文章的推荐指数。

    等等。。。

    细心的朋友可能发现了,在应用了上面三段代码后,的确可以实现功能。但是,在默认的自定义栏目区域下,是可以看到,有一个名为“rating”的栏目,这就是我们刚刚选择的推荐指数。如果想让他不在自定义栏目下,显示,可以将上述代码中的$rating_key改为以下划线开头,这样,WordPress就不会显示出来了。注意有两个地方要改。