回显元选择框的值

时间:2012-07-01 作者:Daimz

如何将元选择框的值回显到模板中?

下面是我如何设置元框的:

// Add the Meta Box
function add_custom_meta_box() {
    add_meta_box(
        \'custom_meta_box\', // $id
        \'Custom Meta Box\', // $title
        \'show_custom_meta_box\', // $callback
        \'post\', // $page
        \'normal\', // $context
        \'high\'); // $priority
}
add_action(\'add_meta_boxes\', \'add_custom_meta_box\');


// Field Array
$prefix = \'custom_\';
$custom_meta_fields = array(
    array(
        \'label\'=> \'Map Icon\',
        \'desc\'  => \'A description for the field.\',
        \'id\'    => $prefix.\'select\',
        \'type\'  => \'select\',
        \'options\' => array (
            \'one\' => array (
                \'label\' => \'Option One\',
                \'value\' => \'http://localhost:8888/wp-content/uploads/2012/06/black_Marker.png\'
            ),
            \'two\' => array (
                \'label\' => \'Option Two\',
                \'value\' => \'two\'
            ),
            \'three\' => array (
                \'label\' => \'Option Three\',
                \'value\' => \'three\'
            )
        )
    )
);

// The Callback
function show_custom_meta_box() {
global $custom_meta_fields, $post;
// Use nonce for verification
echo \'<input type="hidden" name="custom_meta_box_nonce" value="\'.wp_create_nonce(basename(__FILE__)).\'" />\';

    // Begin the field table and loop
    echo \'<table class="form-table">\';
    foreach ($custom_meta_fields as $field) {
        // get value of this field if it exists for this post
        $meta = get_post_meta($post->ID, $field[\'id\'], true);
        // begin a table row with
        echo \'<tr>
                <th><label for="\'.$field[\'id\'].\'">\'.$field[\'label\'].\'</label></th>
                <td>\';
                switch($field[\'type\']) {
                    // case items will go here
                    // select
                    case \'select\':
                        echo \'<select name="\'.$field[\'id\'].\'" id="\'.$field[\'id\'].\'">\';
                        foreach ($field[\'options\'] as $option) {
                            echo \'<option\', $meta == $option[\'value\'] ? \' selected="selected"\' : \'\', \' value="\'.$option[\'value\'].\'">\'.$option[\'label\'].\'</option>\';
                        }
                        echo \'</select><br /><span class="description">\'.$field[\'desc\'].\'</span>\';
                    break;
                } //end switch
        echo \'</td></tr>\';
    } // end foreach
    echo \'</table>\'; // end table
}

// Save the Data
function save_custom_meta($post_id) {
    global $custom_meta_fields;

    // verify nonce
    if (!wp_verify_nonce($_POST[\'custom_meta_box_nonce\'], basename(__FILE__)))
        return $post_id;
    // check autosave
    if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE)
        return $post_id;
    // check permissions
    if (\'page\' == $_POST[\'post_type\']) {
        if (!current_user_can(\'edit_page\', $post_id))
            return $post_id;
        } elseif (!current_user_can(\'edit_post\', $post_id)) {
            return $post_id;
    }

    // loop through fields and save the data
    foreach ($custom_meta_fields as $field) {
        $old = get_post_meta($post_id, $field[\'id\'], true);
        $new = $_POST[$field[\'id\']];
        if ($new && $new != $old) {
            update_post_meta($post_id, $field[\'id\'], $new);
        } elseif (\'\' == $new && $old) {
            delete_post_meta($post_id, $field[\'id\'], $old);
        }
    } // end foreach
}
add_action(\'save_post\', \'save_custom_meta\');  
基本上,我想将选择框“Map Icon”中的数据回送到此处,如下所示:

marker : new google.maps.MarkerImage(\'<?php echo get_custom.select(); ?>\', new google.maps.Size(20, 34) )

1 个回复
最合适的回答,由SO网友:Conrad 整理而成
<?php echo get_post_meta($post->ID, \'custom_meta_box\', true);?> 
结束

相关推荐

将文本从ThickBox添加到metabox输入文本字段

我有一个自定义的帖子类型,其中有一个元框文本输入区域,当从模式窗口单击链接时,我想从thickbox中插入一个短代码。现在使用下面的代码,单击“插入”按钮时,它只会关闭模式窗口。请告诉我哪里出了问题。我的厚盒子开得很好。呈现的页面具有如下链接:echo \'<td><a href=\"#\" style=\"display:block\" class=\"button insertdownload\" id=\"download-\'.$d->id.\'\">Insert&l