0

私はドロップダウンオプションを提供するこの機能を持っています:

public function edit_tax_image_field( $term ){
    $term_id = $term->term_id;
    $term_meta = get_option( "taxonomy_$term_id" );
    $image = $term_meta['tax_image'] ? $term_meta['tax_image'] : '';
?>
    <tr class="form-field">
        <th scope="row">
            <label for="term_meta[tax_image]">Dropdown menu</label>
            <td>
                <select name="term_meta[tax_image]" id="term_meta[tax_image]" style="width: 300px;">
    <?php
        $selected = $image;
        $p = '';
        $r = '';

        foreach ( _s_sample_select_options() as $option ) {
            $label = $option['label'];
            if ( $selected == $option['value'] ) // Make default first in list
                $p = "\n\t<option style=\"padding-right: 10px;\" selected='selected' value='" . esc_attr( $option['value'] ) . "'>$label</option>";
            else
                $r .= "\n\t<option style=\"padding-right: 10px;\" value='" . esc_attr( $option['value'] ) . "'>$label</option>";
        }
        echo $p . $r;
    ?></select>
                <p class="description">Some description.</p>
            </td>
        </th>
    </tr><!-- /.form-field -->
<?php
} // edit_tax_image_field

これが私の節約機能です

public function save_tax_meta( $term_id ){

    if ( isset( $_POST['term_meta'] ) ) {

        $t_id = $term_id;
        $term_meta = array();

        $term_meta['tax_image'] = isset ( $_POST['term_meta']['tax_image'] ) ? esc_attr( $_POST['term_meta']['tax_image'] ) : '';

        // Save the option array.
        update_option( "taxonomy_$t_id", $term_meta );

    } // if isset( $_POST['term_meta'] )
} // save_tax_meta

どこにバグがあるのか​​わかりません。私はコーディングの初心者なので...バグは単純かそうでないかです。

この問題を解決するには、1日かかりました:D、まだ解決策がありません:(

4

1 に答える 1

0

変更してみてください

if ( $selected == $option['value'] ) // Make default first in list
                $p = "\n\t<option style=\"padding-right: 10px;\" selected='selected' value='" . esc_attr( $option['value'] ) . "'>$label</option>";

if ( $selected == $option['value'] ) // Make default first in list
                $p .= "\n\t<option style=\"padding-right: 10px;\" selected='selected' value='" . esc_attr( $option['value'] ) . "'>$label</option>";
于 2013-10-11T10:18:02.800 に答える