这里我们在$types数组中定义了Post和Page都需要推荐指数这个自定义字段,然后告诉WordPress使用“render_rating_meta_box”方法来渲染Meta Box,位置在侧边栏(side)。因为内容不多,所以侧边栏足够,若内容较多,可以将“side”改为“advanced”,这样就会在主内容区域渲染Meta Box。
接下来看看是如何渲染的
PHP Code复制内容到剪贴板
这里先使用wp_nonce_field()添加了一个nonce field,用来做安全检查,然后,读取推荐指数的值,循环1~10来输出可供选择的值,如果和推荐指数相同,则默认选上。通过下拉框,既可以解决输入不方便和无法验证的问题。记住这里下拉框的name属性的值(rating_field),将通过它在下面的代码中获取选择的值。
最后,当文章被保存时,需要将推荐指数也保存起来
接下来看看是如何渲染的
- function render_rating_meta_box( $post ) { // 添加 nonce 项用于后续的安全检查
- wp_nonce_field( 'rating_nonce_action', 'rating_nonce_name' );
- // 获取推荐指数的值 $rating_key = 'rating';
- $rating_value = get_post_meta( $post->ID, $rating_key, true ); $rating_value = (int)$rating_value;
- $html = '<select name="rating_field">';
- for ($i = 0; $i <= 10; $i++) { $selected = '';
- if ($i == $rating_value) { $selected = 'selected="selected"';
- } $html .= sprintf('<option value="%s" %s>%s星</option>', $i, $selected, $i/2);
- } $html .= '</select>';
- echo $html; }
这里先使用wp_nonce_field()添加了一个nonce field,用来做安全检查,然后,读取推荐指数的值,循环1~10来输出可供选择的值,如果和推荐指数相同,则默认选上。通过下拉框,既可以解决输入不方便和无法验证的问题。记住这里下拉框的name属性的值(rating_field),将通过它在下面的代码中获取选择的值。
最后,当文章被保存时,需要将推荐指数也保存起来









