Intereting Posts
Превращение разбитых URL-адресов в условия поиска? Может ли этот короткий код Тот же заголовок / нижний колонтитул в Admin, на всех сетевых сайтах в многопользовательском режиме Показать сообщения за день Как устранить проблему в целом и загрузить шрифты Google? Ограничить роль для просмотра собственных медиа Проверьте, существует ли почтовый идентификатор в пользовательском типе сообщений, вне цикла Существуют ли некоторые предостережения для использования указаний для комментариев FB Экспорт плагина пропускает много изображений Лучший способ уведомить пользователей WordPress о новых кандидатах на выпуск для бета-тестирования? Как сохранить дату / время последнего обновления дополнительного поля профиля пользователя? Как запросить Top 5 сообщений определенной категории? Важно ли санировать данные в коротком коде, который будет использоваться на сайте, на который я только отправлю? Отображение сообщений, принадлежащих определенному автору Виджет архива WordPress вызывает ошибки Bing bot 404

Как отобразить открытый профиль пользователя с двумя дополнительными полями? (Включая исходный код GitHub)

Как новичок в WordPress я пытаюсь создать плагин, который заставит пользователей указывать свой город и пол во время регистрации, а затем отображать страницу личного профиля для каждого пользователя, отображающего эту информацию.

Я проверил свой плагин в GitHub: wp-city-gender.php .

Для регистрационной части я следил за настройкой документа регистрационной формы, и, похоже, он работает нормально – дополнительные поля города и пола отображаются в регистрационной форме и сохраняются позже в таблице wp_usermeta . Они также редактируются в части « Пользователи» панели инструментов:

Снимок экрана пользователей

Кроме того, я перенаправляю ссылки для комментариев на /user/user_id с помощью этого кода:

 define('PROFILE', '<a href="/user/%d" rel="external nofollow" class="url">%s</a>'); function get_comment_author_link($cid) { global $comment; return sprintf(PROFILE, $comment->user_id, $comment->comment_author); } add_action('get_comment_author_link', 'get_comment_author_link'); 

Скриншот

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

То, что я не хочу: я не могу просто создать простой PHP-скрипт, wp_usermeta данные из wp_usermeta для определенного числового user_id – потому что он не будет интегрирован на моем веб-сайте WordPress , то есть он не отобразит логотип наверху и нижний колонтитул внизу.

Я думаю, что простой способ сделать это – использовать структуру шаблона wordpress, взглянуть на Codex: Templates и Codex: Template Hierarchy для общего обзора. Но именно вы можете использовать шаблоны авторов – Codex: Author Templates – для этого, скорее всего, вы будете адаптировать файл author.php в соответствии с вашими потребностями.

Кроме того, вы хотите изменить структуру перезаписи для шаблона автора в соответствии с вашими целями. Общая информация приведена в Codex: Rewrite API и Codex: Reference класса / WP_Rewrite . Кроме того, на этот вопрос несколько раз ответили на WPSE, не нужно дублировать это, так что взгляните на: прочитайте зарегистрированную страницу профиля пользователя и / или как настраивать базу авторских изменений без $ this-> front? ,

Я попытался создать пользовательскую регистрацию формы некоторое время назад, используя wordpress. Я хотел зарегистрировать несколько настраиваемых полей и сделать их необходимыми, поэтому я попытался найти правильный плагин, а не изобретать колесо.

Я нашел хороший плагин под названием theme my login: http://wordpress.org/plugins/theme-my-login/

Вам нужно будет немного почитать, но нам повезло, что есть документация, которая может помочь вам на этом сайте:

См. Здесь, как добавить дополнительные поля регистрации: http://www.jfarthing.com/development/theme-my-login/adding-extra-registration-fields/

В основном вам необходимо:

1) Установите плагин

2) Добавьте register-form.php в макет темы.

3) Измените свою копию своего регистра-form.php. Что-то вроде этого:

 <div class="login" id="theme-my-login<?php $template->the_instance(); ?>"> <?php $template->the_action_template_message( 'register' ); ?> <?php $template->the_errors(); ?> <form name="registerform" id="registerform<?php $template->the_instance(); ?>" action="<?php $template->the_action_url( 'register' ); ?>" method="post" autocomplete = "off"> <input type="text" name="user_login" id="user_login<?php $template->the_instance(); ?>" class="input" value="<?php $template->the_posted_value( 'user_login' ); ?>" size="20" /> <input type="text" name="user_email" id="user_email<?php $template->the_instance(); ?>" class="input" value="<?php $template->the_posted_value( 'user_email' ); ?>" size="20" /> <input type="text" placeholder="Gender" name="user_gender" id="user_gender<?php $template->the_instance(); ?>" value="<?php $template->the_posted_value( 'user_gender' ); ?>" required /> <input type="text" placeholder="City" type="text" id="user_city<?php $template->the_instance(); ?>" name="user_city" value="<?php $template->the_posted_value( 'user_city' ); ?>"/> <?php do_action( 'register_form' ); ?> <p class="submit"> <input type="submit" name="wp-submit" class="yellow btn1 uppercase right os700" id="wp-submit<?php $template->the_instance(); ?>" value="<?php esc_attr_e( '[ Submit ]' ); ?>" /> <input type="hidden" name="redirect_to" value="<?php $template->the_redirect_url( 'register' ); ?>" /> <input type="hidden" name="instance" value="<?php $template->the_instance(); ?>" /> <input type="hidden" name="action" value="register" /> </p> </form> <?php $template->the_action_links( array( 'register' => false ) ); ?> 

Здесь вы можете изменять и добавлять настраиваемые поля и столько же HTML и CSS, сколько хотите.

Затем на вашем functions.php вам нужно будет зарегистрировать пару действий, чтобы вы здесь.

Чтобы зарегистрировать пользователя:

 function tml_user_register( $user_id ) { if ( !empty( $_POST['user_login'] ) ) update_user_meta( $user_id, 'user_login', $_POST['user_login'] ); if ( !empty( $_POST['user_email'] ) ) update_user_meta( $user_id, 'user_email', $_POST['user_email'] ); if ( !empty( $_POST['user_gender'] ) ) update_user_meta( $user_id, 'user_gender', $_POST['user_gender'] ); if ( !empty( $_POST['user_city'] ) ) update_user_meta( $user_id, 'user_city', $_POST['user_city'] ); } add_action( 'user_register', 'tml_user_register' );` 

Чтобы отобразить содержимое на панели управления:

 add_action ( 'show_user_profile', 'my_show_extra_profile_fields' ); add_action ( 'edit_user_profile', 'my_show_extra_profile_fields' ); 

С помощью этих двух действий вы можете отображать свои профили пользователей на панели управления, чтобы добавить это в свой файл functions.php.

  <?php function my_show_extra_profile_fields ( $user ){ ?> <h3>Custom profile information</h3> <table class="form-table"> <tr> <th><label for="user_gender"><?php _e('Gender');?></label></th> <td><input type="text" name="user_gender" id="user_gender" value="<?php echo esc_attr( get_the_author_meta( 'user_gender', $user->ID ) ); ?>" /><br /></td> </tr> <tr> <th><label for="user_city"><?php _e('City');?></label></th> <td><input type="text" name="user_city" id="user_city" value="<?php echo esc_attr( get_the_author_meta( 'user_city', $user->ID ) ); ?>" /><br /></td> </tr> </table> <?php } 

Если вы хотите, чтобы пользователи обновляли свою собственную информацию, добавьте что-то вроде этого (также в ваших functions.php):

 add_action ( 'personal_options_update', 'my_save_extra_profile_fields' ); add_action ( 'edit_user_profile_update', 'my_save_extra_profile_fields' ); function my_save_extra_profile_fields( $user_id ){ if ( !current_user_can( 'edit_user', $user_id ) ) return false; update_usermeta( $user_id, 'user_gender', esc_attr(trim($_POST['user_gender'])) ); update_usermeta( $user_id, 'user_city', esc_attr(trim($_POST['user_city'])) ); } 

Очень много, но полезно поучаствовать, прочитать документацию и удачи, надеюсь, это поможет вам.

РЕДАКТИРОВАНИЕ

Итак, если вы хотите показать метату пользователя, вы можете использовать author.php и profile-form.php, находящиеся в папке templates , а также с другими файлами register-form.php, вы можете скопировать этот файл в свою тему папку и настроить.

Чтобы отобразить пользовательскую мета на вашем author.php добавьте следующий author.php :

 echo do_shortcode('[theme-my-login default_action="profile" show_title="1"]'); 

Затем вы можете показать контент, используя что-то вроде этого:

 echo $profileuser->user_city echo $profileuser->user_gender 

Вы делаете некоторые предположения о некорректной пользовательской системе WordPresses.

author_link и comment_author_link возвращают значение, которое люди предоставляют в поле website оставляя комментарий или свой профиль пользователя (если они подписались). Эти поля также могут быть пустыми, но практически всегда указывать на внешний сайт, если они установлены.

Он никоим образом не ссылается на страницу профиля, WordPress по умолчанию не делает страницы профиля, поэтому люди создали много плагинов вокруг этой идеи (от простых страниц профиля вплоть до таких вещей, как приятель).

Author.php – это архив для сообщений автора, а пользователь! == author

Если вы хотите, чтобы страницы профилей общего профиля и пользовательские поля в профилях, я настоятельно рекомендую использовать один из многих плагинов, предназначенных для этого, – чтобы настроить его, это не простая функция или «быстрое» исправление, t ожидайте, что кто-то сделает этот объем работы для вас за +50 интернет-очков.