我在我的WordPress帖子中添加了几个自定义字段,用于为我的爱好(汽车)创建的主题。我在从HTML选择框中选择选项时遇到问题。如果我选择它,它的工作和保存正确〜在前端显示正确的值,但当我返回到帖子页面时,它总是显示选项的第一个值,而不是所选的值。例如,如果我选择自动,它将显示在前端,但是当我重新访问后端时它再次是手动。
我知道为了让它坚持所选的帖子,我必须将选择的关键字添加到选项中,但这是我遇到问题的地方。
我做了什么
到目前为止,我所做的是本教程的工作:http://wpshed.com/create-custom-meta-box-easy-way/
我创建了一个类似的选择框:
function wpshed_meta_box_output( $post ) {
// create a nonce field
wp_nonce_field( 'my_wpshed_meta_box_nonce', 'wpshed_meta_box_nonce' ); ?>
<p>
<label for="transmission_textfield"><?php _e( 'Transmition', 'wpshed' ); ?>:</label>
<!-- <input type="text" value="<?php echo wpshed_get_custom_field( 'transmission_textfield' ); ?>" /> -->
<select name="transmission_textfield" id="transmission_textfield">
<option value="Manual" >Manual</option>
<option value="Automatic">Automatic</option>
</select>
</p>
}
function wpshed_meta_box_save( $post_id ) {
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if( isset( $_POST['transmission_textfield'] ) )
update_post_meta( $post_id, 'transmission_textfield', esc_attr( $_POST['transmission_textfield'] ) );
}
add_action( 'save_post', 'wpshed_meta_box_save' );
?>
如何将所选关键字添加到所选的选项中?
答案 0 :(得分:1)
您需要在selected
上手动设置<option>
属性 - 即。获取值,然后使用wordpress函数selected()
在相关位置输出属性,如下所示:
<?php
$selected_option = get_post_meta($post->ID, 'transmission_textfield', true);
?>
<select name="transmission_textfield" id="transmission_textfield">
<option value="Manual" <?php selected($selected_option, 'Manual') ?>>Manual</option>
<option value="Automatic" <?php selected($selected_option, 'Automatic') ?>>Automatic</option>
</select>
你没有发布wpshed_get_custom_field()
的代码,所以我不会使用它,但我猜它只是get_post_meta()
的包装...在这种情况下你可以继续并使用它......