自定义字段选择框(添加选择关键字)

时间:2015-07-08 20:37:32

标签: php wordpress

我在我的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' );

?>

如何将所选关键字添加到所选的选项中?

1 个答案:

答案 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()的包装...在这种情况下你可以继续并使用它......