Как сделать социальную сеть на базе wordpress - создаем профиль автора и страничку пользователя - Авторские материалы о продвижении вконтакте, wordpress фишках и плагинах, SMO, SEO, дизайне
Отборная информация, которая вставляет!

Создаем профиль автора — 2 часть руководства по созданию социальной сети

Пришло время рассказать вам о втором шаге по созданию социальной сети на базе wordpress.

Сегодня я расскажу о том как — сделать блок автора на сайте, добавить любые поля в профиль автора, создать страничку автора на сайте.

1 часть статьи — социальные сети на wordpress

Итак, первое.

1. Создаем блок автора.

Если вы используете плагин theme my login — то там будет доступен виджет, но я предпочитаю делать ручками, тем более, что это не сложно.

В нужном месте где нужно вывести блок автора вставляем такой код.

Логика тут простая — если пользователь залогинен — показываем ссылки на его профиль, его рейтинг и т.д., если нет — ссылки на регистрацию\вход или логин форму

<?php global $user_ID, $user_identity, $user_level ?>
<?php if ( $user_ID ) : ?>
ЗДЕСЬ БУДЕТ БЛОК ДЛЯ ТЕХ КТО ЗАШЕЛ НА САЙТ ПОД СВОИМ НИКОМ
<?php else : ?>
СОДЕРЖИМОЕ ДЛЯ НЕАВТОРИЗОВАННЫХ ПОЛЬЗОВАТЕЛЕЙ
<?php if ( get_option('users_can_register') ) : ?>
ЕСЛИ ЕСТЬ ВОЗМОЖНОСТЬ РЕГИСТРАЦИИ
<?php endif ?>
<?php endif; ?>

Есть ещё один упрощенный вариант. Открываем functions.php и начинаем колдовать.

function author_log() { ?>
<? if ( !is_user_logged_in() ): ?>
ЗДЕСЬ БУДЕТ БЛОК ДЛЯ ТЕХ КТО НЕ АВТОРИЗИРОВАЛСЯ
<? else: ?>
ЗДЕСЬ ДЛЯ ТЕХ КТО АВТОРИЗИРОВАЛСЯ
<? endif?>
<?php
}	

Теперь в нужном месте ставим

<?php author_log(); ?>

Вот и все, но теперь нужно ведь заменить текст на то, что нам нужно. Для авторизированных пользователей мы вставим аватарку, ник, ссылку на профиль, ссылку на страницу изменения профиля, ссылку на выход.

Делаем это так

<div class="cont-side">
<?php global $current_user;  get_currentuserinfo(); echo get_avatar( $current_user->user_email, '60' ); ?>  
<p><span class="name"><?php global $user_login; get_currentuserinfo(); echo $user_login; ?></span>  <br />
<a href="<?php bloginfo('url'); ?>/author/<?php echo $current_user->user_login; ?>">Профиль</a>  | <a href="<?php bloginfo('url') ?>/wp-admin/profile.php" title="изменить">Изменить</a><br />
 <a href="<?php echo wp_logout_url( $redirect ); ?>" title="Выйти">Выйти</a> </p> 
<div>

Но тут нужно объяснить — все класы и верстка может быть другая, я просто дал пример. Граватарка у нас имеет размер 60 — (user_email, ’60’ ) — но можно ставить любой. Если вы используете плагин theme my login — то возможно он сгенерирует новую ссылку на изменение профиля, поэтому её можно изменить.

В этот блок вы можете ставить все, что угодно, работает любой php код.

Например можно добавить ещё ссылку на админпанель для администраторов —

<?php global $user_ID; if( $user_ID ) : ?>
<?php if( current_user_can('level_10') ) : ?>
<li><a href="<?php bloginfo('url') ?>/wp-admin/index.php">Администрирование</a></li>
<?php else : ?>
<?php endif; ?>
<?php endif; ?>

Но я считаю это излишним, так как думаю, если админ захочет попасть в админку, то он введет адрес напрямую.

Обычно в этот блок я добавляю ещё вывод рейтинга автора и ссылку на добавление статьи — но об этом в следущих частях.

идем дальше. Теперь нужно показать что-то тем, кто не авторизировался на сайте. Я обычно вставляю простые ссылки на вход\регистрацию, но скорее всего вы захотите вставить логин форму. Делаем это так:

Если вы используете theme my login, то будет:

<h2>Авторизация</h2>
<form name="loginform-tml-main" id="loginform-tml-main" action="/login/?instance=tml-main&action=login" method="post">
<p><label for="log-tml-main">Логин</label><br />
<input type="text" name="log-tml-main" id="log-tml-main" class="input" size="18" /><p>
<p><label for="pwd-tml-main">Пароль</label><br />
<input type="password" name="pwd-tml-main" id="pwd-tml-main" class="input" value="" size="18" /><p>
<p><label for="rememberme-tml-main"><input name="rememberme-tml-main" type="checkbox" id="rememberme-tml-main" value="forever" /> Запомнить?</label></p>
<p><input type="submit" name="login-submit-tml-main" id="login-submit-tml-main" value="Войти" />
<input type="hidden" name="redirect_to" value="http://wptest.ru/login/" />
<input type="hidden" name="testcookie" value="1" /></p>
</form>

Можно вставить стандартную форму

 <form id="form-login" method="post" action="http://blackpig.ru/wp-login.php" name="loginform">
					
<input type="text" value="логин" class="flinput" onfocus="doClear(this)" onblur="doDefault(this)" id="user_login" name="log" />
<input type="password" value="password" class="flinput" onfocus="doClear(this)" onblur="doDefault(this)" id="user_pass" name="pwd" />
<input type="submit" value="" id="flsubmit" id="wp-submit" name="wp-submit" />
<input type="hidden" value="<?php bloginfo('url') ?>/wp-admin/" name="redirect_to">
<input type="hidden" value="1" name="testcookie">
<a href="<?php bloginfo('url') ?>wp-login.php?action=register" title="">регистрация</a>
</form>

Недавно ещё нашел код формы, которая возращает пользователя на ту страницу, с которой он произвел авторизацию.

<form action="<?php echo wp_login_url(get_permalink()); ?>" method="post">
		<label for="log"><input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="22" /> User</label>
		<label for="pwd"><input type="password" name="pwd" id="pwd" size="22" /> Password</label>
		<input type="submit" name="submit" value="Send" class="button" />
		<label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Remember me</label>
                <a href="<?php bloginfo('url') ?>/wp-login.php?action=register" title="">Register</a>
	</form>

Пробуйте любую — саму форму можно вставить любую, главное, что name, id совпадали и ссылки.

И ещё — как вы видите, я уже в форму вставил ссылку на регистрацию, но если вы используете самый первый вариант кода и плагин theme my login — то слова ЕСЛИ ЕСТЬ ВОЗМОЖНОСТЬ РЕГИСТРАЦИИ — нужно заменить на

<ul>
<li><a href="<?php bloginfo('url') ?>/login/?instance=tml-main&action=register">Регистрация</a></li>
<li><a href="<?php bloginfo('url') ?>/wp-login.php?action=lostpassword">Забыли пароль?</a></li>
</ul>


Ну на этом все — переходим дальше

2. Профиль пользователя.

На этом этапе мы научимся убирать ненужные поля с профиля и добавлять новые.

По умолчанию, я убираю поля aim, jabber и т.д. делается это вставкой кода в functions.php

function add_twitter_contactmethod( $contactmethods ) {
  unset($contactmethods['aim']);
  unset($contactmethods['jabber']);
  unset($contactmethods['yim']);
  return $contactmethods;
}
add_filter('user_contactmethods','add_twitter_contactmethod',10,1);

Теперь разберемся как добавить несколько новых полей.

add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );

function my_show_extra_profile_fields( $user ) { ?>

	<h3>Дополнительная информация</h3>

	<table class="form-table">

		<tr>
			<th><label for="school">Ваша школа</label></th>

			<td>
				<input type="text" name="school" id="school" value="<?php echo esc_attr( get_the_author_meta( 'school', $user->ID ) ); ?>" class="regular-text" /><br />
				<span class="description">Введите название вашей школы, если вы занимаетесь капоэйра</span>
			</td>
		</tr>
		
				<tr>
			<th><label for=city">Ваш город</label></th>

			<td>
				<input type="text" name="city" id="city" value="<?php echo esc_attr( get_the_author_meta( 'city', $user->ID ) ); ?>" class="regular-text" /><br />
				<span class="description">Введите название города, где вы живете</span>
			</td>
		</tr>
		
						<tr>
			<th><label for="contact">Ваши контакты</label></th>

			<td>
				<input type="text" name="contact" id="contact" value="<?php echo esc_attr( get_the_author_meta( 'contact', $user->ID ) ); ?>" class="regular-text" /><br />
				<span class="description">Введите любые контактные данные по которым с вами можно связаться</span>
			</td>
		</tr>

	</table>
<?php }

add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

function my_save_extra_profile_fields( $user_id ) {

	if ( !current_user_can( 'edit_user', $user_id ) )
		return false;

	/* Copy and paste this line for additional fields. Make sure to change 'twitter' to the field ID. */
	update_usermeta( $user_id, 'school', $_POST['school'] );
	update_usermeta( $user_id, 'city', $_POST['city'] );
	update_usermeta( $user_id, 'contact', $_POST['contact'] );
}

Страшно? Но на самом деле все просто — первая часть кода — это верстка с нужными нам полями, я вставил три поля — на самом деле может быть и одно. Главное ещё — если даете присваиваете значение city, то его нужно вставить везде — в name, в id и т.д. и не забудьте вставить это значение и вконце в строках, которые начинаются с

update_usermeta( $user_id, 'school', $_POST['school'] );

эти строки отвечают за сохранение данных.

Опять же верстка может быть любая, главное, не трогать сам php код и вставить везде те значения, что нужны вам.

Так, теперь инфу от пользователя собрали, нужно её ещё как-то вывести ведь.

3. Создаем страничку пользователей.

Все странички пользователей доступны по адресу вашсайт.ру/author/ник_автора

Для вывода используется шаблон author.php — который нужно вставить в папку темы. Причем с версии 2.9 можно создавать шаблоны под каждого автора отдельно. Для этого нужно сделать шаблон с названием author-имя_автора.php

Обычно я делаю так. Копирую single.php — переименовываю его в author.php и вместо вывода записи (цикла) вставляю туда следущий код.

<div id="content">	

<?php global $wp_query;$curauth = $wp_query->get_queried_object();?>
	<div class="entry">	 						                                                                                      	
	    <div class="text">        
        	<div id="b-userinfo">
			  <?php  echo get_avatar( $curauth->user_email, '96' ); ?>
                          <div class="name"><?php echo $curauth->nickname; ?></div>
			  <div class="name-real"><?php echo $curauth->first_name; ?> <?php echo $curauth->last_name; ?></div>
                          <div class="useb-about"><?php echo $curauth->user_description; ?></div>
                </div>           
                	<div class="user-format">
			<b>Рейтинг автора: <span><?php if(function_exists('cp_displayPoints')){cp_displayPoints($curauth->ID);}?>&nbsp;|&nbsp;Всего добавлено статей: <span class="rate-and-post"><?php $author_posts_link = get_author_posts_url($curauth->ID, $curauth->user_nicename ); $postlink = get_the_author_posts(); echo $postlink; ?></span></b></div>
                
     	<? if ( $curauth->user_url ): ?><div class="user-format">Сайт автора: <a href="<?php echo $curauth->user_url; ?>" title="перейти на сайт автора" target="_blank"><?php echo $curauth->user_url; ?></a></div><? endif?>
	            	
	<? if ( $curauth->school ): ?><div class="user-format">Я занимаюсь в школе: <span class="color-user"><?php echo $curauth->school; ?></span></div><? endif?>
	<? if ( $curauth->city ): ?><div class="user-format">Я живу в городе: <span class="color-user"><?php echo $curauth->city; ?></span></div><? endif?>
	<? if ( $curauth->contact ): ?><div class="user-format">Связаться со мной можно: <span class="color-user"><?php echo $curauth->contact; ?></span></div><? endif?>
					                 
  <div id="other"> 
        <h6>Cтатьи автора:</h6>
        <ul>
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
          <li>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>">
            <?php the_title(); ?></a>,     
          </li>
    <?php endwhile; else: ?>
        <p><?php _e('No posts by this author.'); ?></p>

    <?php endif; ?>
       </ul>
    </div>                  

    </div>  
  </div><!-- End entry -->	 
  <div class="clear"></div>       
</div><!-- End content -->	
 

Как видите в шаблон много разных вызовов, например,

<?php echo $curauth->nickname; ?>

Эта функция выводит различную инфу о юзере с базы. Полное описание функции можно посмотреть в . Что важно знать — это к примеру вызов последних функций в примере

<?php echo $curauth->city; ?> 

Значения city — нет в стандартном наборе значений, откуда оно взялось? А помните в предыдущем шаге мы добавляли новые значения в профиле — вот это именно они. Т.е. если мы добавляли значение city — то вывод этого значения и будет как раз с помощью этой функции. Для удобства я сделал ещё запрос на проверку, т.е. если значение есть — то оно выводится с заголовком и форматированием, если нет — то ничего не выводится. Это сделано при помощи следущего кода

<? if ( $curauth->city ): ?><div class="user-format">Я живу в городе: <span class="color-user"><?php echo $curauth->city; ?></span></div><? endif?>

В самом конце мы выводим все статьи автора обычным циклом, к стати, в котором работают все стандартные функции свойственные для loop.

Ну вот вроде и все на сегодня. В следущей статье, мы посмотрим как можно делать рейтинг авторов и статей.

На закуску, предлагаю ознакомиться с компанией, которая грамотно осуществляет продвижение и оптимизацию ваших сайтов в поисковых системах. А также хотите узнать какая цена поисковой оптимизации?


 

Похожие статьи:



108 комментариев к “Создаем профиль автора — 2 часть руководства по созданию социальной сети”


9643e5d7

  1. wpшник:

    о, круто, продолжение.

  2. масянька:

    хм, сложновато как-то все. столько кода

    • ETNO:

      ну это только по началу так кажется. Можно и вообще без кода — есть к примеру плагин mingle — он все сделает сам.

      А вообще все это вставляется и подгоняется под дизайн за 1-2 часа.

  3. :

    Отличная статья, спасибо!
    Правда, с css, видимо, придётся повозиться, чтобы всё красиво выводилось(
    Плюс в mingle есть возможность заливать собственные аватары — можно ли сделать эту функцию самому, без плагина?

  4. :

    Столкнулся с проблемой, в профиле пользователя, если он не опубликовал ещё ни одной записи, в поле «Всего добавлено статей:» отображается общее количество статей со всего блога, вне зависимости от автора.
    Если же пользователь публиковал статьи, то отображается правильное количество.

  5. TopClans:

    а у меня почти ничего не работает:(
    во-первых, я создал шаблон страницы, из которого убрал вывод статей, и вставил Ваш код.
    но при таком раскладе теперь невозможно просмотреть главную страницу — идёт автоматический редирект на страницу логина, которую я только что делал. Жал на «регистрацию» — появляется ошибка:
    The requested URL /login/ was not found on this server.

    почему так?(

  6. TopClans:

    сам не пойму как, но вопрос решился. теперь у меня новый вопрос: как добавить эти самые дополнительные поля на страницу редактирования профиля?

  7. :

    <?php }

    у меня ошибка в этом месте!!
    Parse error: syntax error, unexpected '}'

    • ETNO:

      вы неверно вставили код, то ли внутрь другого, то ли где-то потеряли что-то. Тут синтаксическая ошибка у вас. Где-то лишний знак }

  8. Даниил:

    Ошибка: У текущего TDOMF автора-по-умолчанию есть права на публикацию записей. TDOMF автор-по-умолчанию не должен иметь таких прав! Создать нового TDOMF-автора автоматически »

    Ошибка: Получена ошибка 404 во время проверки ! Это помешает работе форм (отправке записи). Возможно папке tdo-mini-forms назначены неправильные права (CHMOD).

    Ошибка: Получена ошибка 404 во время проверки ! Это помешает работе форм с использованием AJAX. Возможно папке tdo-mini-forms назначены неправильные права (CHMOD).

    Ошибка: Получена ошибка 404 во время проверки ! Это испортит внешний вид вашей формы. Возможно папке tdo-mini-forms назначены неправильные права (CHMOD).

    что делать?

  9. ksenia:

    Хотела выразить благодарность за ваше руководство. Без неё я бы не смогла сделать проект(соц сеть для любителей комп игр) по базам данных, Профессора требуют полноценную сеть, а как сделать не учат. Спасибо вам.

  10. :

    Не получается вставить дополнительные поля, не понимаю, куда вставлять код: function my_show_extra_profile_fields …

      • :

        А на какой странице пользователь сможет ввести о себе информацию(город и т.д.)?

        Сделал всё как по инструкции, но на странице редактирования профиля не выводятся дополнительные поля, соответственно ничего добавить не могу.

        • ETNO:

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

          • :

            В том то и дело что нет, после добавления в файл functions.php в папке темы,
            ничего не изменилось в полях. Как было, стандартное: имя, фамилия, сайт, так и осталось.

            Я просто видимо не понимаю, после добавления в файл function новой функции, вордпресс сам должен подхватить её и юзать, или мы должны дополнительно прописывать эту функции ещё раз, т.е. вызывать?

          • ETNO:

            да, должен подхватить сразу. Попробуйте сделать тоже самое с отключенными всеми плагинами или же на предыдущих версиях ВП

          • :

            Неправда ваша… Функцию нужно вызвать.
            А для того, чтоб дополнительные поля появились в профиле, нужно добавить в код:
            add_action(‘show_user_profile’, ‘my_show_extra_profile_fields’);
            add_action(‘edit_user_profile’, ‘my_show_extra_profile_fields’);

          • ETNO:

            вы правы, глянул код, что на своих сайтах юзаю — там вставил, а в статье забыл. Поправил

  11. :

    Зачетная статья — то что надо!) Спасибо!

  12. :

    Большое спасибо автору. Постоянно возвращаюсь к этой статье. Подписался на рассылку. Редко пишу в комментах, но это действительно полезная статья.

  13. :

    ETNO, спасибо за статью — сделала, благодаря ей, дополнительные поля на странице профиля.

    Можете подсказать, как убрать поле «Биография» в профиле пользователя.
    Пыталась написать код по аналогии с другими полями (aim,yim,jabber) — не работат.
    А очень нужно от этого поля избавиться.

  14. Читатель:

    А если я хочу вывести вместо постов только комментарии пользователя и в несколько страниц (например по 10 комментарий на страницу), как это можно сделать?

  15. Читатель:

    Подскажите пожалуйста как убрать «Ник (обязательно)». Зачем он нужен вообще не понятно, только путаницу вносит — один плагин выводит по имени пользователя, другой по нику и получается не весть что. Как избавиться от ника? Хочу оставить только имя пользователя (что обычно и есть ник) и просто имя.

  16. :

    Привет всем.Делаю сайт и очень охота сделать его на подобие соц.сети но wordpress вообще не знаю! Помогите кто чем может! Финансово договоримся. Задумка очень большая на счет этого сайта!

  17. наталья:

    Извините, а вы не подскажете, как сделать, чтобы все формы регистрации/авторизации были во всплывающих окошках?

  18. :

    update_usermeta замени на update_user_meta

    =)

  19. Alex:

    Здравствуйте!

    У меня не открывается страница «профиль».
    Я создал файл author.php ( с помощью файла single.php и с заменой кода ), но при нажатии на ссылку «профиль» открывается вот это ( работаю на локалке, через денвер)

    Not Found

    The requested URL /paran/author/salo was not found on this server.

    Подсказка Денвера

    Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл X:/home/localhost/www/paran/author/salo, которого не существует.

    В случае использования CGI-скриптов, корректные пути к CGI-директориям следующие:

    URL Куда указывает
    /home/cgi-glob/script.cgi
    /home/***/cgi/script.cgi
    /home/***/cgi-bin/script.cgi

    Скажите пожалуйста в чем проблема.

    Заранее спасибо!

    • ETNO:

      сложно сказать, что не так. Может стоит попробовать сделать тоже, но на другой версии. и ещё смущает /paran/author/ — paran — в ссылке, вроде должно быть сразу /author

  20. :

    Статьи автора выводятся только 5 последних. Как сделать чтобы выводились все статьи без ограничений? Вот код вывода:

    <a href="» rel=»bookmark» title=»Перейти к: «>

  21. :

    я создаю страницу профиля. она у меня не открывается. ошибкуа 404

  22. :

    А как сделать на странице автора (точнее на странице редактирования профиля) возможность подписки на определенные рубрики из плагина subscribe 2?

  23. :

    Вы меня простите, но я ни чего не поняла!!! Что за оборот — В нужном месте где нужно вывести блок автора вставляем такой код.!!!!!!!!!!!!! Что значимт В НУЖНОМ МЕСТЕ??? Где это нужное место? На Луне???
    «»»Теперь в нужном месте ставим»»»» Вот и все, но теперь нужно ведь заменить текст на то, что нам нужно. Для авторизированных пользователей мы вставим аватарку, ник, ссылку на профиль, ссылку на страницу изменения профиля, ссылку на выход.

    Делаем это так»»»»»

    Я понимаю, что вы наверное САМИ СЕБЯ понимаете, но я вас нет!!! Поэтому можно как-то по русски, а не по догадкам!!!!

    • ETNO:

      в нужном месте — это предполагается любое место, где вы хотите видеть этот блок. Можете хоть и на луне.
      Далее, если вставите тот код, то на сайте увидите просто сообщение — ЗДЕСЬ БУДЕТ БЛОК ДЛЯ ТЕХ КТО НЕ АВТОРИЗИРОВАЛСЯ, этот текст и нужно заменить «на то, что нам нужно» — это может быть тоже, что вам захочется. Хоть форма логина, хоть просто сообщение. Некоторые примеры «того, что нужно» я и привел. И да, эта статья для тех, кто хоть что-то понимает в файлах wordpress, если не понимаете, то сначала изучите основы хотя бы, для того, чтобы ковыряться в нем. Не хотите изучать, есть плагин theme my login — я его упоминал в статье не раз.

  24. :

    Это не ученик недогадлив, а преподаватель не правильно объясняющий!!! Потому что еже ли вы что-то пишете, то можно же как-то понятнее объяснять!! Я понимаю, что вы «собаку на этом съели», но всё же хотелось бы более понятнее!!! заранее, спасибо.

    • ETNO:

      если взглянуть на текст глазами новичка, то конечно мало что понятно, поэтому я писал ещё в начале цикла, что рассчитано на то, что уже есть базовый уровень понимания wordpress и его структуры тем. И к стати, я на этом «собаку не съел», я вообще дизайнер по специальности, а в wordpress ковырялся потому что хотелось сделать сайты для себя с нуля. Т.е. все сайты, что есть у меня — они сделаны полностью мной, в том числе и верстка и программирование. Но знания php у меня даже ниже, чем начальные

    • ETNO:

      и wordpress ещё очень хорош тем, что на нем можно изучать php, так что проще подставлять куски кода и смотреть что будет, вы быстрее поймете тогда все, чем если просто вам будут говорить что нужно делать конкретно

  25. никто:

    Спасибо большое за статью!
    Вы не могли бы чуть-чуть помочь.
    У меня вот такая проблемка. Сайд-бар почему то в низ падает.
    А еще вопрос если можно.
    Как удалить графу (в настройках профиля) «Личные настройки» и биографию?
    А еще может есть способ сделать чтобы путь на страницу автора был таким: (www.Домен-сайта.ru/А-здесь-сразу-имя-без-надписи»author») ?
    Еще раз большое спасибо за статью!

    • ETNO:

      с биографией сложнее, обычными методами не удалить. Я встречал только метод скрытия поля через скрипт
      $(‘textarea#description’).parent().parent().hide();

      Или можно вырезать с файла самого движка.
      Вот вам ещё в помощь

    • ETNO:

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

  26. :

    Есть такой вопрос по форме входа:
    вот я зашел отображаются ссылки на «корректировку профиля», «выход» а как добавить вывод «Ника» пользователя который бы вел на его страницу автора?

    • ETNO:

      как выводить ник и ссылку на профиль описано в статье. Посмотрите 4 код по счету, там есть код который выводит то, что вам нужно

  27. Alex:

    Привет!

    Возник вопрос, вот ты дал код входа,
    а можешь дать пожалуйста код регистрации!

    Просто я хочу регистрацию поместить на одну страницу с формой входа.

    Смотрел в поисковиках че то не нашел(

    Пытался взять форму регистрации с других плагинов, но после их вставки сайт просто не грузился (странно.

    Помоги пожалуйста!
    Заранее спасибо!

  28. Alex:

    Или можно ли виджет Theme My Login вставлять просто кодом, а не через админку раздел виджеты?

  29. zeromanser:

    Добрый день.
    «Теперь разберемся как добавить несколько новых полей.» далее огромный кусок кода. Его тоже в functionы.php вставлять? Если да, то после такой операции перестает грузится сайт.
    Еще вопрос — вместо аватарки у меня «user_email, ’60’ ); ?>», из-за чего может быть?
    и последнее — файл author.php уже существует, его заменять созданным собственноручно?
    Спасибо заранее. если что, сайт — miris-miris.ru

    • ETNO:

      отпишите мне на почту с указанием кода, комментарии режут код просто

      • :

        Здравствуйте! Хочу поблагодарить вас за цикл статей — побольше бы таких авторов, которые делятся своими знаниями)

        У меня тот же вопрос, что и у «предыдущего оратора».

        Сделала все по вашей 1 и 2 статье (кроме functions.php), выходит user_email, ’60’ ); ?> вместо аватары.

        Может быть, просто перешлете мне ваш ответ для zeromanser?

        Буду вам очень-очень благодарна!

        • ETNO:

          тут смотреть нужно отдельно для каждого сайта. Можете скинуть мне тему на почту — гляну, если будет свободное время

  30. :

    Здравствуйте. У меня вопрос не по теме.
    А как Вы выводите в сайдбаре блок «Лучшие статьи»? Т.е., чтобы выводились тумбы, заголовок и немного текста? Если Вы выводите вручную, то каким плагином, виджетом или кодом можно воспользоваться?

    • ETNO:

      Это все вручную написано. Сами посты выводятся через query_post из определенной рубрики. Миниатюры — подтягиваются автоматом первые картинки с поста, пост обрезается через специальный хак. Все это можно найти в инете, ну или меня попросит, я может статью сделаю. Плагинов я подобных не видел, но есть плагины, которые умеют выводить самые просматриваемые посты.

  31. Павел:

    Зачем заучивать языки програмирования?!
    Легче почти с минимальными знаниями всё написать с минимумом знаний html на uCoz.
    Можно подучить, сделать каркас, таблицу CSS и вписывать js.
    Вывод: im-online.ucoz.net

    • ETNO:

      может тогда на народе делать? нафига та динамичность нужна? И какая разница, что сайт не ваш будет и в любое время его могут забанить.

    • :

      И платить еще каждый месяц чтобы убрали свою раздрожающую рекламу, платить чтобы сделали авторизацию и регистрацию вам индивидуальную(так как зарегился на Unet и заходи на любой сайт), и в итого перейти на другой хостинг, так как сайты на юкоз грузятся 3 часа =)

  32. :

    Было бы хорошо, если бы Вы статью написали.

  33. :

    Привет.
    Для начала, спасибо за статью. Поучительно.
    Но у меня возникла проблема с удалением в профиле полей:

    Admin Color Scheme (Цветовая схема)
    Keyboard Shortcuts (Горячие клавиши)
    Show Admin Bar (Показывать верхнюю панель)

    Как это сделать?

  34. :

    Привет, спасибо за статью. Супер, давно искал такую информацию!
    Возникла проблемма: когда добавляю дополнительные поля к профилю (в functions.php добавляю код) — в посте буквы отображаются нормально, но когда захожу в профиль они отображаются криво (���� ��������). Подскажите, плиз, как можно исправить это недоразумение ?

  35. Андрей:

    На странице автора выводится не весь список постов автора, а только то количество, которое показано на главной странице. Так и должно быть?

  36. :

    Спасибо! Наконец-то страница автора вывелась при отсутствии записей у пользователя!!!

  37. Еще_один:

    Добрый день. Во-первых огромное спасибо за предоставленный урок. Возможно единственное место в сети где все подробно расписано на русском языке.

    Но почему то у меня проблема с профилями пользователей. Выдает ошибку 404. Подсказали, что проблема может быть из-за ЧПУ. мол Htacces настроен никак следует. Вроде бы исправил. Не помогло.
    Тоже самое что и автора первого поста, который остался не откомментированным.
    Подскажите,в чем может быть проблема. Решил основательно все сделать на WP. вот завис на этой мелочи. =(

    • ETNO:

      помню там глюк был такой с ВП, что нужно не htaccess обновить, а просто зайти в админке на страницу где прописываются ЧПУ и тупо обновить эту страницу — попробуйте

  38. Askim:

    а как добавить выпадающий список выбора даты рождения?

  39. Zorex:

    Здравствуйте. Проблема с «3. Создаем страничку пользователей.» Вставил все функции что вы дали и сделал шаблон author.php . Но когда захожу в профиль то отображаются только граватар, «Рейтинг автора:»,»Всего добавлено статей: «,»Cтатьи автора:» . А вот город, школа, контакты вообще не отображаются. Как это исправить, в чем может быть проблема?

  40. mrlona:

    Здравствуйте. Хорошая статья. Спасибо. Но есть пару вопросов. Если у пользователя имя состоит из 2 слов (mr lona) то при попытке зайти на его станицу выбивает 404, как это можно исправить? (URL: domain.ru/author/mr%20lona/)
    И еще допустим юзер не ввел какую то информацию например биографию, то в профиле будет отображаться слово биография после чего пусто. Можно как то эту пустоту заменить на «пользователь не указал информацию»?
    Подскажите пожалуйста.

    • ETNO:

      по 404 ошибке — а у вас стоит плагин rus-to-lat? Он по идее должен вместо пробелов ставить тире. И у вас последняя версия движка?

      По биографии думаю можно, для этого нужно условие прописать

      <?php if ($curauth->user_description !==''):?> 
      <?php echo $curauth->user_description; ?>
      <? else:?>
      пользователь не указал информацию
      <?endif;?>

      Если не выйдет, то напишите, гляну

  41. mrlona:

    RusToLat стоит. Ну а толку если имя пользователя через пробел, а плагин будет проьел изменять все равно будет 404. Движок 3.1.1. За код спасибо, все работает.

  42. mrlona:

    Может лучше убрать возможность писать пробел при регистрации?

    • ETNO:

      в кодексе вообще вот так пример

      <a href="<?php echo $curauth->user_url; ?>"><?php echo $curauth->user_url; ?></a>

      Или можно вообще заменить всю конструкцию на

      <?php the_author_posts_link(); ?>

      Или поставить плагин или подобный, в нем есть функция запрета использования пробелов в юзер никах

  43. mrlona:

    Спасибо огромное за плагин. Как то я не решался поискать такой, не думал что такие есть 🙂

    Не мог бы ты мне к кое чем помочь?

  44. Каролин:

    Спасибо большое за эту серию статей, все получается хорошо…только одна проблема…не подскажете, как сделать, чтобы при регистрации нового пользователя подгружалась форма из его будущего профиля?

    Сейчас у меня подгружается совершенно другая только логин, почта и пароль…спасибо..)

  45. :

    Здравствуйте! При создании блока автора в functions.php возникла какая то ошибка, и теперь я не могу зайти ни на сайт ни в админку. С чем это может быть связано?
    Ошибка сервера
    На веб-сайте произошла ошибка при получении . Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
    Вот несколько советов и рекомендаций:
    Обновите эту страницу позже.
    Ошибка HTTP 500 (Internal Server Error): При попытке сервера выполнить запрос возникла неожиданная ситуация.

    • ETNO:

      может вы неправильно вставили в файл functions.php? Где-то тег не закрыли, например. Если уж совсем все поломалось, можно через фтп папку с темой удалить (лучше скопировать на комп) и потом движок если не найдет папку с текущей темой, то откатывается на дефолтную

  46. :

    Спасибо за внимание. Уже сделала. Наверно тег где то не закрыла…

  47. Владимир:

    Здравствуйте! Использовал код с этой страницы, что бы вывести количество постов авторов. Все работает, вот только в профиле авторов, у которых нет постов выводится общее количество статей на сайте () Подскажите, как исправить это

    • ETNO:

      Попробуйте вместо

      <?php $author_posts_link = get_author_posts_url($curauth->ID, $curauth->user_nicename ); $postlink = get_the_author_posts(); echo $postlink; ?>

      использовать

      <?php count_user_posts( $curauth->ID ); ?> 

      Отпишите что выйдет

      • Владимир:

        попробовал, выходит просто пустой белый экран(

        • ETNO:

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

          • Владимир:

            версия движка 3.5. спасибо за помощь. я поковыряюсь на выходных, может сам разберусь. если что, напишу вам

  48. :

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

  49. :

    Доброго времени суток!
    Спасибо за статьи, очень грамотно и доступно написаны. Есть один вопрос по формам входа… Размещаю на сайте форму из Вашей статьи, и она работает, причем перенаправляет на туже страницу откуда залогинился пользователь, но вот если введен неправильный пароль или логин, то перенаправляется на стандартную страницу вордпресса…
    Как можно сделать так, чтобы при неправильно введенных данных или перезагружалась страница с которой логинится юзер или выскакивало сообщение о том, что какие то данные некорректны?

    • ETNO:

      эта статья морально уже устарела. Сейчас есть уже плагины, все в одном, которые решают все эти задачи с админки. Ну с русскоязычных думаю wppost.ru лучшее

  50. Alex:

    О, как хорошо. Надо будет сайт обновить. Когда-то сделал по Вашей методике и боюсь трогать — теперь wppost попробую применить

  51. Иван:

    Подскажите пожалуйста как вывести статьи определенной категории в профиле?