10 августа 2009

Как создать профайл в wordpress

Админка wordpress предоставляет отличную возможность создания персональных страниц пользователей. В них можно добавить контактную информация и рассказать о себе. Отвечает за эту работу файл author.php в папке с темой.

В большинстве тем он отсутствует и wp обращается к archive.php, поэтому при нажатии на ник, вместо профайла мы видим список созданных пользователем сообщений. Значит переименовываем его в author.php с добавлением следующей информации:
  • Ник, имя и фамилия
  • E-mail
  • Сайт
  • Биография
  • Фото
  • Ссылки на сообщения
  • Ссылки на комментарии
В этом файле нужно найти код, который начинается на
<?php if (have_posts())
заканчивается на
<?php endif; ?>
и заменить его этим:
<?php
$thisauthor = get_userdata(intval($author));
?>
<div style="float: right;">
<? if(function_exists('get_avatar')) { echo get_avatar($thisauthor->user_email, 96, "" ); } ?> </div>

<h2><?php echo $thisauthor->first_name . " " . $thisauthor->last_name; ?> (<?php echo $thisauthor->display_name; ?>)</h2>
<p><a href="<? echo $thisauthor->user_url; ?>"><? echo $thisauthor->user_url; ?></a><br />
<a href="mailto:<? echo $thisauthor->user_email; ?>">email</a>
<p><?php echo $thisauthor->description; ?> </p>

<?php if (have_posts()) : ?>
<h2>Recent Posts </h2>
<ul>
<? while (have_posts()) :  the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; else: ?>
<li>This user hasn't published any posts. </li>
<?php endif;  ?>
</ul>
<?
$querystr = "
    SELECT comment_ID, comment_post_ID, post_title
    FROM $wpdb->comments, $wpdb->posts
    WHERE user_id = $thisauthor->ID
    AND comment_post_id = ID
    AND comment_approved = 1
    ORDER BY comment_ID DESC
    LIMIT 10
 ";

 $comments_array = $wpdb->get_results($querystr, OBJECT);

if ($comments_array): ?>
<h2>Recent Comments </h2>
<ul>
<? foreach ($comments_array as $comment):
 setup_postdata($comment);
 echo "<li><a href='". get_bloginfo('url') ."/?p=".$comment->comment_post_ID."/#comment-". $comment->comment_ID ."'>Comment on ". $comment->post_title ."</a></li>";
endforeach; ?>
</ul>
<? endif; ?>
Сохраняем всё это через FTP, открываем админку, в разделе "Внешний вид" > "Редактор" /wp-admin/theme-editor.php в правой колонке должен появиться author.php.

2 комментария:

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

    ОтветитьУдалить
  2. Кто ищет тот всегда найдёт! =)

    Как раз задумался как в WordPress на автомате подставлять свой сайт в комментариях

    А то что-то уже устал ручками ссылки на своём видео блоге подставлять после каждого комментария =)

    Спасибо

    ОтветитьУдалить

на этом сайте нет nofollow-ссылок, поэтому комментируйте смело, одобряем любой спам