@alekamisleforma

Как сделать профиль пользователя на Wordpress и убрать редирект на главную страницу?

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

Я создал страницу profile, которая выводит данные пользователя по логину и дает возможность некоторые из этих данных менять. Ссылка на страницу выглядит так localhost/profile . И я не могу понять, как мне сделать вот так localhost/profile/username . Логика, наверное, должна быть такая.. при переходе на страницу profile, если после "profile" что-то есть, то скрипт ищет в БД пользователя с таким логином и если он есть, то выводит данные, а если нет, то что-то типа "Пользователь не найден".

Так вот, как мне сделать, чтобы при переходе по ссылке вида localhost/profile/username , я оставался на странице profile и у меня отрабатывался скрипт этой страницы. Потому что сейчас wordpress переход по указанной ссылке определяет как ошибку 404 и перенаправляет меня на главную. И вообще, я в правильном направлении думаю? Может быть то, что мне нужно, делается как-то иначе?
  • Вопрос задан
  • 306 просмотров
Решения вопроса 1
@alekamisleforma Автор вопроса
В общем, если кому-то нужно будет на WP сделать что-то подобное, то можете реализовать это следующим образом:
1) В админке создаете страницу (например profile) и назначаете для нее заранее созданный шаблон (например, profile.php)
2) В странице-шаблоне получаем ссылкой переданный id при помощи
$userID = $_GET["id"];

Это в случае, когда вы хотите, чтобы в профиль пользователя мог зайти любой пользователь, а не только его владелец. Если же вы делаете личный кабинет, то id можете получать так
$current_user = wp_get_current_user();
$userID = $current_user->ID;


Дальше по этому id выводите все что вам нужно.
Имейте ввиду, что если в профиле вы хотите дать пользователю возможность менять личные данные (а вы будете это делать), то не забудьте о проверке. Например, ее можно реализовать при помощи сравнения id, полученного при помощи $_GET["id"]; и id, полученного с помощью wp_get_current_user();

3) Переход в профиль пользователя осуществляется по ссылкам вида localhost/profile/?id=1
4) В общем, я не знаю насколько это правильная реализация поставленной задачи, но работает как надо. Я только не смог реализовать нормальный ссылки, т.е. по типу localhost/profile/username. Я знаю что это делается в файле .htaccess при помощи модуля mod_rewrite, но его синтаксис пока слишком сложен для меня, нужно будет выделить отдельное время и "медитировать" на эту штуку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы