WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

А как сделать страницу для пользователей

Привет. Есть решения для создание страницы для пользователей ?
Чтобы можно было зайти на пользователя и посмотреть его?

Заметки к вопросу:
pfilan 2.6 лет назад

profile/user

0
pfilan
2.6 лет назад 24
  • 1
    kolshix779 paxtoy.com

    Самый простой для меня способ
    1 Создать произвольную любую страницу к примеру "user"
    2 заполнить её кодом user данные
    2.1 через $_GET или регулярку - получить из URL id или ник "site/user/id-1"
    2.2 сделать условие наличия id или ника в URL, а так же наличие самого пользователя
    2.3 по id уже выводить любые нужные данные пользователя

    pfilan 2.6 лет назад

    А можешь кодом ?

    pfilan 2.6 лет назад

    спасибо большое буду разбираться

    pfilan 2.6 лет назад

    Весь мозг сломал. Не могу понять, как делать каждому пользователю отдельную страницу.
    Как выводить информацию я понял по пользователю.

    А вот что ставит в шаблон, чтобы у каждого пользователя была свой страница не понимаю

    kolshix 2.6 лет назад

    Что у каждого была своя страница - нужно смотреть пункт 2.1 - если ввел в url
    site/user/?id=1
    site/user/?id=2
    site/user/?id=3

    Тогда и данные будут другие

    В коде нужно сделать несколько проверок "if"
    1 проверить авторизацию
    https://wp-kama.ru/function/is_user_logged_in
    2 вывод данных на основании либо id из урл либо через определение текущего id пользователя
    https://wp-kama.ru/function/get_current_user_id

    kolshix 2.6 лет назад

    example.com/user/?uid=1

    1 либо получить url а потом обрабатывать 
    $url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    echo $url;
    2 либо сразу выводить или обрабатывать id
    echo $us_id = $_GET['uid']
    if ( тут проверки на вход и на наличие id) {
    
    }
    
    pfilan 2.6 лет назад
    $cur_user_id = get_current_user_id();
    echo '' . $cur_user_id . '';
    //1 либо получить url а потом обрабатывать 
    $url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    echo $url;
    //2 либо сразу выводить или обрабатывать id
    echo $us_id = $_GET['uid'];
    if ( is_user_logged_in() ) {
    	// ...
    }

    он указывает ссылку страницы где шаблон. и не генерирует /user/?uid=1

    kolshix 2.6 лет назад

    Ты шаблон страницы создал по адресу "example.com/user/" ?

    <?php
    /*
    Template Name: Шаблон User 
    */
    ?>
    <?php
    	echo $us_id = $_GET['uid'];
    	if ( is_user_logged_in() && $us_id > 0 && $us_id !== "" && is_numeric($us_id)) {
    		// показываем данные пользователя 
    		$user_info = get_userdata( $us_id );
    
    		echo 'Имя пользователя: ' . $user_info->user_login . "\n";
    		echo 'Уровень доступа: ' . $user_info->user_level . "\n";
    		echo 'ID: ' . $user_info->ID . "\n";
    
    	} else {
    		echo "Вы не авторизированны или не правельный ID"; 
    	}
    ?>
    pfilan 2.6 лет назад

    да. Вы не авторизированны или не правельный ID
    на сайте авторизован

    kolshix 2.6 лет назад

    А теперь попробуй адрес так отрыть
    example.com/user/?uid=1

    pfilan 2.6 лет назад

    Да получилось.
    понял спс. буду дальше разбираться

    pfilan 2.6 лет назад

    вот что сделал, спасибо большое тебе

    <?php
    	$us_id = $_GET['uid'];
    	if ( is_user_logged_in() && $us_id > 0 && $us_id !== "" && is_numeric($us_id)) {
    		// показываем данные пользователя
    		$user_info = get_userdata( $us_id );
    
    	//дата
    	$user = get_userdata( $us_id );
    	$user_reg = $user->get('user_registered');
    	$datetime = new DateTime($user_reg);
    
    	//роль
    	function get_user_role_name( $user_id ){
    	if ( ! $user = get_userdata( $user_id ) ) {
    	   return '';
    	 }
    	 $name = wp_roles()->roles[ $user->roles[0] ]['name'];
    	 $name = translate_user_role( $name );
    	 return $name;
    	 }
    
    	echo '<div class="avatar">'  .  get_avatar($user_info->id, ' . $user_info->id')  .  '</div><br/>';
    
    	echo '<div>' . '<strong>' . '<i class="fa fa-address-card-o"></i> Пользователь: ' . '</strong>' . $user_info->display_name  .  '</div><br/>';
    
    	echo '<div>' . '<i class="fa fa-user-o"></i> ' . $user_info->user_lastname  . ' ' . $user_info->user_firstname . '</div>';
    	echo '<div>' . '<i class="fa fa-envelope-o"></i> ' . $user_info->user_email . '</div>';
    		echo '<div>' . '<i class="fa fa-unlock-alt"></i> ' . 'ID: ' .  $user_info->ID . '</div>';
    	echo '<div>' . '<i class="fa fa-calendar"></i> ' . 'Регистрация: ' .  $datetime->format('d:m:Y')  . '</div>';
    	echo '<div>' . '<i class="fa fa-users"></i> ' . 'Роль: ' . get_user_role_name( $us_id ) . '</div>';
    
    	//echo '<div>' . '<i class="fa fa-circle"></i> ' . 'Статус: ' . get_user_role_name( $us_id ) . '</div>';
    	//echo '<div>' . '<i class="fa fa-star-half-o"></i> ' . 'Рейтинг: ' . get_user_role_name( $us_id ) . '</div>';
       //echo '<div>' . '<i class="fa fa-comments"></i> ' . 'Комментарии: ' . get_user_role_name( $us_id ) . '</div>';
    
    	} else {
    		echo "Вы не авторизированны или не правельный ID";
    	}
    ?>
    pfilan 2.6 лет назад

    С этими ссылками проблемы, можно тебе спросить ?

    Выдаю список пользователей

    <?php  
    
    function contributors() { global $wpdb; $authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name");
      foreach ($authors as $author ) {
      echo "<li class='spisok-users'>";
      echo get_avatar($author->ID);
      echo '<div>'; echo the_author_meta ('display_name', $author->ID);echo "<br />";
    
      echo "</div>"; echo "</li>";
      }}
    ?>
    
    <div id="authorlist"><ul> <?php contributors(); ?></ul></div>
    

    Как сделать чтобы ссылка показывалась у пользователей ?

    /user/?uid=6
    kolshix 2.6 лет назад
    echo '<div>'; echo the_author_meta ('display_name', $author->ID);echo "<br />";
    // заменить на 
    echo '<div>'; echo  '/user/?uid='. $author->ID; echo "<br />";
    // ну или 
    echo '<div>'; echo  '<a href="site,ru/user/?uid='. $author->ID.'>'.get_the_author_meta('display_name', $author->ID).'   </a>'; echo "<br />";
    
    pfilan 2.6 лет назад
    echo '<div>'; echo  '<a href="site,ru/user/?uid='. $author->ID.'>'.get_the_author_meta('display_name', $author->ID).'   </a>'; echo "<br />";
    

    спасибо. самое то но ошибка в синтаксисе

    он почему-то в ссылку в носит и картинку и все что в коде

    pfilan 2.6 лет назад

    сижу ковыряю, он имя авторов не правильно выводит даже.

    echo '<div>'; echo  '/user/?uid='. $author->ID; echo "<br />";

    Нормально работает, пытаюсь ссылку ставить, неполучается

    pfilan 2.6 лет назад

    https://pfilan.ru/beta/

    pfilan 2.5 лет назад

    Разобрался

    echo  '<a href="site,ru/user/?uid='. $author->ID.'>

    Не хватает "

    echo  '<a href="site,ru/user/?uid='. $author->ID.'">
    
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация