Intereting Posts
Получить текущую конечную точку WooCommerce не работает запрос настраиваемого поля 404 в разбивке на страницы, но со странным завихрением (ошибка 404 только при наличии одного сообщения на второй странице) Как получить первый пост и второй пост в блоге WordPress? Как добавить Shortcode (font awesome) в заголовок виджета? Действовать на пользователя обновляется, но только один раз как выполнять персонализированные групповые действия для WP_List_Table (основной класс) post_type игнорируется WP_Query, когда включен аргумент «tag» Функции для вызова определенных элементов Открыть всплывающее окно «Вставить / изменить» Как заставить oEmbed отображать фиксированные размеры высоты и ширины? Как наилучшим образом настроить для развития двухсторонней прибрежной команды? Не работает WordPress nav_menu_link_attributes in_widget_form обнаруживает идентификатор боковой панели get Insert id для мета поля

Построить массив один раз / выпадающий / выбрать окно / профиль пользователя

Я хочу создать собственные пользовательские поля выбора в профиле пользователя WordPress. .tab я делал базу данных в файле .tab и пытался ее прочитать; он отображается в selectbox, все отлично.

Но я не могу сохранить свой профиль, если я переключусь. Я изменил данный код и протестировал его жестко закодированным массивом, например:

 $arr = array(1,2,3,.....); 

Это сработало отлично. Должен ли я сделать singleton для чтения базы данных только один раз и построить массив таким образом? Если это может быть решением, следующий вопрос: как я могу это сделать и где должен быть загружен конструктор? functions.php? Где именно?

Благодаря …

 /* * Action show + edit user Profile fields */ add_action( 'show_user_profile', 'my_show_extra_profile_fields' ); add_action( 'edit_user_profile', 'my_show_extra_profile_fields' ); define("NUTS3_LOCAL_DATA_FILE","./example.tab"); /* * Builds the array */ function bundesland () { $fileDataBundesland = file_get_contents(NUTS3_LOCAL_DATA_FILE); $fileDataBundesland = utf8_encode($fileDataBundesland); $fileDataBundesland = explode("\n",$fileDataBundesland); $bundesland = array(); for ( $i=1; $i < count($fileDataBundesland); $i++ ) { $fileRow = explode("\t",$fileDataBundesland[$i]); array_push($bundesland,$fileRow[2]); } $bundesland = array_unique($bundesland); $bundesland = array_filter($bundesland); return $bundesland; } /* * Profile Fields */ function my_show_extra_profile_fields( $user ) { ?> <h3>Bundesland und Landkreise/Kreise oder kreisfreie Städte</h3> <table class="form-table"> <tr> <th><label for="bundesland">Bundesland</label></th> <td> <select name="bundesland" id="bundesland" > <?php foreach (bundesland() as $bl) { echo '<option value=' . $bl; selected($bl, get_the_author_meta( "bundesland", $user->ID ) ); echo '>' . $bl . '</option>'; } ?> </select></br> <span class="description">Bitte geben Sie Ihr Bundesland an.</span> </td> </tr> <tr> <th><label for="landkreis">Landkreis/Kreis oder kreisfreie Stadt</label></th> <td> <input type="text" name="landkreis" id="landkreis" value="<?php echo esc_attr( get_the_author_meta( 'landkreis', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description">Bitte geben Sie Ihre/n Landkreis/Kreis oder kreisfreie Stadt an.</span> </td> </tr> </table> <?php } add_action( 'personal_options_update', 'my_save_extra_profile_fields' ); add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' ); /* * Save profile fields */ function my_save_extra_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return false; /* Copy and paste this line for additional fields. Make sure to change the '' arguments to the field ID. */ update_usermeta( $user_id, 'bundesland', $_POST['bundesland'] ); update_usermeta( $user_id, 'landkreis', $_POST['landkreis'] ); }