Можем ли мы установить перенаправление с динамическим контентом в URL?

Вопрос или проблема

Мне нужно перенаправить пользователей на страницу профиля, используя один 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 вашего сайта.

Не забудьте протестировать код на локальной или тестовой версии сайта перед применением на продакшене, чтобы убедиться в корректности работы и отсутствии ошибок.

Оцените материал
Добавить комментарий

Капча загружается...