我在我的WordPress帖子中添加了几个自定义字段,这是我为我的爱好(汽车)创建的一个主题。我在从HTML选择框中选择一个选项时遇到了问题。如果我选择它,它工作和保存正确~显示在前端正确的值,但当我返回到post页面时,它总是显示选项的第一个值,而不是选择的选项。例如,如果我选择自动,它将显示在前端,但当我再次访问后端它是手动。
我知道,为了让它坚持选定的帖子,我必须添加选定的关键字到选择,但这是我有问题的地方。
我做了什么,
到目前为止,我所做的是本教程中的工作: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' );
?>如何将所选关键字添加到所选选项中?
发布于 2015-07-08 20:49:33
您需要在selected - ie上手动设置<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()的包装器.在这种情况下,你可以用它来代替.
https://stackoverflow.com/questions/31303212
复制相似问题