#php #wordpress
Вопрос:
Я никогда не писал никакого кода на php, но я создаю панель управления wordpress, для которой требуется перенаправление на страницу на основе имени пользователя. Мне нужна кнопка на главной странице, которая приведет зарегистрированного пользователя на нужную страницу, поэтому я создаю короткий код(не знаю, является ли это лучшим решением).
До сих пор, после поиска в Интернете, у меня есть этот код:
function url_sc() {
$current_user = wp_get_current_user() {
$username = $current_user->login_user {
$username_link = "https://testwebpage.no/?username=<?php echo $username; ?>"
}
}
return $username_link;
}
add_shortcode( 'username-url', 'url_sc' );
Я не знаю, сработает ли это еще, потому что я получаю эту синтаксическую ошибку:
синтаксическая ошибка, неожиданное «возвращение» (T_RETURN)
Может ли кто-нибудь объяснить мне, почему я получаю ошибку и, возможно, как ее исправить?
Комментарии:
1. Пожалуйста, добавьте точку с запятой после $username_link = » <a rel=»noreferrer noopener nofollow» href=»https://testwebpage.no/?username= testwebpage.no/?username=<?php echo $имя пользователя; ?>»;
2. Вы, кажется, используете { там, где вы должны использовать ; . Кроме того, вы не можете использовать <?= ?> внутри инструкции PHP, да это и не нужно.
3. Пожалуйста, не обновляйте свой вопрос исправленным кодом — вопросы должны оставаться такими, какими они были для других пользователей, у которых также есть аналогичные проблемы, и правильный ответ уже принят в разделе «Ответы».
4. @FluffyKitten удалил его
Ответ №1:
Попробуйте этот код. это позволит проверить, вошел ли пользователь в систему или нет, а также проверить, что вы используете данное имя пользователя.
function url_sc() {
$current_user = wp_get_current_user();
$username = $current_user->user_login;
$username_link = "https://testwebpage.no/?username=".$username;
return $username_link;
}
add_shortcode( 'username-url', 'url_sc' );
Комментарии:
1. Это возвращает «синтаксическую ошибку, неожиданную»; «» в строке «$username_link».
2. Этот ответ сбивает с толку. Почему существует 2 блока кода, в одном из которых много ошибок? А другой добавил функциональность, которой нет в вопросе, — проверку на наличие определенного имени пользователя.
Ответ №2:
Я не эксперт по PHP, но я балуюсь. Весь этот функциональный блок выложен неправильно, попробуйте;
function url_sc() {
$current_user = wp_get_current_user();
$username = $current_user->user_login;
$username_link = "https://testwebpage.no/?username=" . $username;
return $username_link;
}
add_shortcode( 'username-url', 'url_sc' );
Вы можете сделать этот шаг дальше здесь и создать html-код кнопки в этом блоке кода, затем он будет выведен в виде полной связанной кнопки с коротким кодом.
function url_sc() {
$current_user = wp_get_current_user();
$username = $current_user->user_login;
$username_link = "https://testwebpage.no/?username=" . $username;
$button = '<a href="' . $username_link . '" class="button" target="_blank">Go To My Profile Page</a>';
return $button;
}
add_shortcode( 'username-url', 'url_sc' );
Комментарии:
1. Это проявляется как » testwebpage.no/?username= » на веб-сайте
2. @KasperAamodt Вы уверены, что сейчас вошли в систему?
3. @Bhautik да, я уверен
4. если вы сомневаетесь, найдите функции wordpress developer.wordpress.org/reference/functions/wp_get_current_user
5. я думаю, что это должно быть user_login
Ответ №3:
Это потому, что вы забыли точку с запятой после:
$username_link = "https://testwebpage.no/?username=<?php echo $username; ?>"
и забыл избежать php-кода
, это должно быть:
$username_link = "https://testwebpage.no/?username=". echo $username; ."";
Таким образом, полный код выглядит следующим образом:
function url_sc() {
$current_user = wp_get_current_user() {
$username = $current_user->login_user {
$username_link = "https://testwebpage.no/?username=". echo $username; ."";
}
}
return $username_link;
}
add_shortcode( 'username-url', 'url_sc' );
Комментарии:
1. Это возвращает «синтаксическую ошибку, неожиданную»; «» в строке «$username_link».
2. В этом есть множество ошибок — как и в исходном вопросе, вы добавили еще одну, повторив имя пользователя в середине функции, которая будет выполняться при загрузке WP.