你说得很对,但有一些小问题。
首先,请为函数和值使用uniqe前缀-opacity
或meta_save
非常通用,可供其他作者使用。
其次,你得到元不透明度的部分丢失了,我为你添加了它-只需从当前帖子中检索元值。
第三,我创建了一个函数来循环不同的不透明度。我也用过selected()
函数,但第三个参数(echo)设置为false
- 所以selected返回我的值,而不是回显它。这是一个方便的WordPress函数,可以创建这样的选项和类似的东西。
就是这样。
只要确保在使用post缩略图时调整代码,并确保f711_opacity
来自$post
对象,而不是缩略图本身,因为它保存到帖子中。
add_filter( \'admin_post_thumbnail_html\', \'f711_add_something_to_feature_thumb_box\', 10, 2 ); //same as before
function f711_add_something_to_feature_thumb_box( $myhtml, $post_id ) {
$selected_option = get_post_meta( $post_id, \'f711_opacity\', true ); // get the current value
for ( $i = 0; $i <= 1; $i = $i + 0.1 ) { //loop from 0 to 1 in 0.1 increments
$selects .= \'<option value="\' . $i . \'" \' . selected( $selected_option, $i, false ) . \'>\' . $i . \'</option>\'; //add a option field, and select it if it is the one saved before
}
//create the return html, with the selects created before
return $myhtml .= \'Opacity:
<form>
<select name="f711_opacity">
\' . $selects . \'
</select>
</form>\';
}
// function and action to save the new value to the post
function f711_meta_save( $post_id ) {
if( isset( $_POST[ \'f711_opacity\' ] ) ) {
update_post_meta( $post_id, \'f711_opacity\', sanitize_text_field( $_POST[ \'f711_opacity\' ] ) );
}
}
add_action( \'save_post\', \'f711_meta_save\' );