Вопрос или проблема
Мне нужно перенаправить пользователей на страницу профиля, используя один URL.
Пример: Статическая ссылка: www.domain.com/profile/
при нажатии,
www.domain.com/profile/[USERNAME]/ <– добавляет имя пользователя
мне нужно изменить [USERNAME] в соответствии с именем пользователя вошедшего в систему пользователя. Можем ли мы сделать это в WordPress?
Пример2: если пользователь “Пол” вошел в систему и нажимает на www.domain.com/profile/, он будет перенаправлен на www.domain.com/profile/Paul/
Если вы хотите создать ссылку с никнеймом пользователя в качестве её части, я бы сделал что-то вроде этого
<?php
// проверьте, вошел ли пользователь в систему
if (is_user_logged_in()) {
// получаем объект текущего пользователя
$current_user = wp_get_current_user();
// получаем никнейм пользователя
$user_nickname = $current_user->data->user_nicename;
// устанавливаем ссылку href
$link_href="www.domain.com/profile/" . $user_nickname;
// выводим HTML-ссылку
echo '<a href="' . $link_href . '" title="здесь текст заголовка">Здесь текст ссылки</a>';
}
?>
Теперь, поскольку я не знаю, где или как вы хотите добавить ссылку, я сделал какой-то общий код, который выведет ссылку с никнеймом текущего пользователя, только если пользователь вошел в систему
ИЗМЕНЕНИЕ
Чтобы вывести ссылку, используя текстовый редактор WordPress (wysiwyg), вам потребуется шорткод.
Тот же код, что и выше, но теперь в шорткоде
Добавьте следующий код в ваш functions.php
add_shortcode('bt_redirect_user_link', 'bt_redirect_user_link');
function bt_redirect_user_link ($atts) {
// проверьте, вошел ли пользователь в систему
if (is_user_logged_in()) {
// получаем объект текущего пользователя
$current_user = wp_get_current_user();
// получаем никнейм пользователя
$user_nickname = $current_user->data->user_nicename;
// устанавливаем ссылку href
$link_href="www.domain.com/profile/" . $user_nickname;
// выводим HTML-ссылку
return '<a href="' . $link_href . '" title="здесь текст заголовка">Здесь текст ссылки</a>';
}
}
Чтобы использовать шорткод в текстовом редакторе, просто добавьте [bt_redirect_user_link]
Ответ или решение
Да, вы можете настроить перенаправление с динамическим содержимым в URL в WordPress, используя код PHP, который позволяет подставить имя пользователя в ссылку на страницу профиля. Давайте подробно рассмотрим, как это можно реализовать.
Проблема
Вы хотите перенаправить пользователей на страницу их профиля по статической ссылке, добавив к URL имя пользователя. Например, если пользователь "Paul" вошел в систему и нажал на ссылку www.domain.com/profile/
, он должен быть перенаправлен на www.domain.com/profile/Paul/
.
Решение
Для реализации данной функциональности вам нужно использовать встроенные функции WordPress, чтобы получить информацию о текущем пользователе и динамически создать ссылку. Вот как можно это сделать:
Подход 1: Использование PHP-кода в вашем шаблоне
Вы можете добавить следующий PHP-код в файл темы (например, header.php
, footer.php
или любой другой файл шаблона):
<?php
// Проверяем, авторизован ли пользователь
if (is_user_logged_in()) {
// Получаем объект текущего пользователя
$current_user = wp_get_current_user();
// Извлекаем никнейм пользователя
$user_nickname = $current_user->data->user_nicename;
// Формируем URL для перенаправления
$link_href = "http://www.domain.com/profile/" . $user_nickname;
// Выводим HTML код ссылки
echo '<a href="' . esc_url($link_href) . '" title="Перейти к профилю">' . esc_html($user_nickname) . '</a>';
}
?>
Это создаст ссылку, которая будет вести на страницу профиля текущего пользователя, но только если он вошел в систему.
Подход 2: Использование шорткода
Если вы хотите иметь возможность вставлять эту ссылку в записи или страницы, удобнее создать шорткод. Для этого добавьте следующий код в файл functions.php
вашей темы:
add_shortcode('bt_redirect_user_link', 'bt_redirect_user_link');
function bt_redirect_user_link($atts) {
// Проверяем, авторизован ли пользователь
if (is_user_logged_in()) {
// Получаем объект текущего пользователя
$current_user = wp_get_current_user();
// Извлекаем никнейм пользователя
$user_nickname = $current_user->data->user_nicename;
// Формируем URL для перенаправления
$link_href = "http://www.domain.com/profile/" . $user_nickname;
// Возвращаем HTML код ссылки
return '<a href="' . esc_url($link_href) . '" title="Перейти к профилю">' . esc_html($user_nickname) . '</a>';
}
return ''; // Если пользователь не авторизован, возвращаем пустую строку
}
Теперь, чтобы использовать этот шорткод, просто добавьте [bt_redirect_user_link]
в текстовый редактор вашей страницы или записи.
Заключение
С помощью представленных методов вы можете легко перенаправлять пользователей на их страницы профиля с использованием динамического содержимого в WordPress. Выбор между использованием PHP-кода в шаблонах и созданием шорткода зависит от ваших потребностей в контексте использования. Оба подхода будут работать корректно и позволят вам оптимизировать взаимодействие с пользователями, улучшая UX вашего сайта.
Не забудьте протестировать код на локальной или тестовой версии сайта перед применением на продакшене, чтобы убедиться в корректности работы и отсутствии ошибок.