Я использовал ответ в этом вопросе, чтобы показать выпадающий список моих таксономий, и он отлично работает.
Но когда я сохраняю сообщение / обновление, а страница обновляет / загружает таксономию, которую я выбрал, возвращается к последней таксономии в списке. Я проверил базу данных и сохранил выбранную таксономию правильно, так что очевидно, как я правильно повторяю данные? Как я могу исправить это, чтобы он оставался на выбранной таксономии?
$term = isset( $values['meta-box-events_select'] ) ? esc_attr( $values['meta-box-events_select'][0] ) : '';
ЭТО КОД, КОТОРЫЙ Я ИСПОЛЬЗОВАЛ, ЧТОБЫ ПОКАЗАТЬ ДРОБЛЕНИЕ
<?php $tax = get_object_taxonomies('activities'); $taxterms = get_terms( $tax, 'orderby=count&offset=1&hide_empty=0&fields=all' ); ?> <select name='meta-box-events_select' id='meta-box-events_select'> <option value='' <?php if (!count( $names )) echo "selected";?>>Select Term</option> <?php foreach ( $taxterms as $term ) { echo '<option value="' . $term->slug . '" selected>' . $term->name . '</option>',"\n"; } ?> </select>
Кажется, вы добавляете термин «выбран» к каждому варианту – вы хотите, чтобы он был добавлен к выбранному в данный момент параметру.
Вы можете использовать встроенную функцию WordPress, selected
, которая позволяет сравнивать два значения (например, идентификатор сохраненного термина и текущий идентификатор параметра), и когда они соответствуют выбранным отпечаткам.
Например:
<?php $current_term;//Retrieve the current saved term's; //Get the current term's ID, or 0 if it doesn't exist $current_term_id = ($current_term ? $current_term->term_id : 0); ?> <select name='meta-box-events_select' id='meta-box-events_select'> <option value='' <?php selected(0,$current_term_id)?>>Select Term</option> <?php foreach ( $taxterms as $term ) { echo '<option value="'.$term->slug.'"'. selected($term->term_id,$current_term->term_id).'>'. $term->name . '</option>'; } ?> </select>
,<?php $current_term;//Retrieve the current saved term's; //Get the current term's ID, or 0 if it doesn't exist $current_term_id = ($current_term ? $current_term->term_id : 0); ?> <select name='meta-box-events_select' id='meta-box-events_select'> <option value='' <?php selected(0,$current_term_id)?>>Select Term</option> <?php foreach ( $taxterms as $term ) { echo '<option value="'.$term->slug.'"'. selected($term->term_id,$current_term->term_id).'>'. $term->name . '</option>'; } ?> </select>