Привет. В админке вордпресса можно при заполнении имени, фамилии и ника выбрать сразу (без перезагрузки) отображаемое имя. В плагине реколл этой возможности нет. Мы сначала заполняем три поля, сохраняем настройки, а только после сохранения можем селектом выбрать отображаемое имя: Но вместе мы сделаем этот плагин еще лучше!
Итак: Файл \recall\add-on\profile\index.php и сразу после этих строк
if($select_display){ $profile_block .= '<tr> <th><label for="display_name">Отображаемое имя:</label></th> <td> <select name="display_name" class="regular-dropdown" id="display_name">'; $public_display = array(); $public_display['display_displayname'] = esc_attr($userdata->display_name); $public_display['display_nickname'] = esc_attr($userdata->nickname); $public_display['display_username'] = esc_attr($userdata->user_login); $public_display['display_firstname'] = esc_attr($userdata->first_name); if($userdata->first_name&&$userdata->last_name) $public_display['display_firstlast'] = esc_attr($userdata->first_name) . ' ' . esc_attr($userdata->last_name); if($userdata->first_name&&$userdata->last_name) $public_display['display_lastfirst'] = esc_attr($userdata->last_name) . ' ' . esc_attr($userdata->first_name); $public_display = array_unique(array_filter(array_map('trim', $public_display))); foreach((array)$public_display as $id => $item) { $profile_block .= '<option id="'.$id.'" value="'.esc_attr($item).'">'.esc_attr($item).'</option>'; } $profile_block .= '</select> </td></tr>'; }
Вставляем
?> <script>( function($) { $(document).ready( function() { var select = $('#display_name'); if ( select.length ) { $('#first_name, #last_name, #nickname').bind( 'blur.user_profile', function() { var dub = [], inputs = { display_nickname : $('#nickname').val() || '', display_username : $('#user_login').val() || '', display_firstname : $('#first_name').val() || '', display_lastname : $('#last_name').val() || '' }; if ( inputs.display_firstname && inputs.display_lastname ) { inputs['display_firstlast'] = inputs.display_firstname + ' ' + inputs.display_lastname; inputs['display_lastfirst'] = inputs.display_lastname + ' ' + inputs.display_firstname; } $.each( $('option', select), function( i, el ){ dub.push( el.value ); }); $.each(inputs, function( id, value ) { if ( ! value ) return; var val = value.replace(/<\/?[a-z][^>]*>/gi, ''); if ( inputs[id].length && $.inArray( val, dub ) == -1 ) { dub.push(val); $('<option />', { 'text': val }).appendTo( select ); } }); }); } }); } ) ( jQuery ); </script> <?php
Сохраняем и все работает так как и положено:
Вступайте в мою группу: "Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)"
для уведомления о обновлениях и новостях в вашем фиде
для уведомления о обновлениях и новостях в вашем фиде
Почему-то миниатюры совсем без ссылки на увеличение. Пример смотрите в слайдере вверху. второе изображение как сейчас, первое после модификации
Спасибо, очень полезное решение.
Кстати, да, ссылки с миниатюры нет, надо будет сделать.
Я у себя уже сделал. Кстати - это родное вп решение. Выдрал оттуда 🙂
Здравствуйте. А можно сделать что бы регистрация была возможна только по заранее заданному логину? Что типа инвайта. К примеру админ выдаёт определённые логины и только по ним возможна регистрация.
Можно. Только кто это будет делать, в этом главный вопрос.
я заинтересован в этом, если есть специалист в таких делах, готов поработать с ним