Как самому создать тему для WordPress с нуля - 5.

Июль 18 2009Комментариев нет

Опубликовано под рубрикой:Блоггинг

comments.php

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

Сначала проверим, а не защитил ли автор запись паролем?

<?php
if (!empty($post->post_password)) { // if there's a password
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie
?>
<p class="nocomments">Эта запись защищена паролем. Введите его, чтобы продолжить.</p>
<?php
return;
}
?>

А теперь можно и выводить комментарии. Если, конечно, они у Вас есть!

<?php if ($comments) : ?>
<h3 id="comments">Комментарии к записи <?php the_title('', '', false)); ?></h3>

<ol class="commentlist">
Выводим комментарии здесь
</ol>
<?php else: ?>
Здесь что-нибудь..
<?php endif; ?>

Для вывода комментариев можем использовать следующие функции:

  • comment_ID – Выводит уникальный идентификатор комментария.
  • comment_author – Выводит автора комментария (Никнейм).
  • get_avatar – Выводит аватар автора.
  • comment_author_IP – Выводит ип-адрес комментария. (Внимание! Дурной тон сдавать всем личные данные Ваших комментаторов)
  • comment_author_email -Выводит почту автора.(Внимание! Дурной тон сдавать всем личные данные Ваших комментаторов)
  • comment_author_email_link – Выводит имя автора ссылкой на его почту (mailto).(Внимание! Дурной тон сдавать всем личные данные Ваших комментаторов)
  • comment_author_url – Выводит УРЛ сайта автора.
  • comment_author_url_link - Выводит УРЛ автора ссылкой на этот самый УРЛ.
  • comment_author_link – Выводит имя автора ссылкой на его сайт.
  • comments_number – Выводит текущий номер комментария по порядку.
  • comment_text – Собственно, текст комментария
  • comment_date – Дата.
  • comment_time – Время.

Строим блок комментария и помещаем его в цикл - все элементарно.

<?php foreach ($comments as $comment) : ?>
<li id="comment-<?php comment_ID() ?>">
Автор: <?php comment_author_link(); ?> (<?php comment_date(); ?> в <?php comment_time(); ?>) [ <?php comment_author_IP(); ?>]<br /><?php echo get_avatar($comment, 32); ?><hr />
<?php comment_text(); ?>
</li>
<?php endforeach; ?>

А теперь выводим форму для добавления комментариев, не забывая выполнить проверки на то, разрешены или нет комментарии к этому посту. В итоге у Вас должно получиться примерно так:

<?php if ('open' == $post-> comment_status) : // Проверка на то, что комментирование разрешено ?>

<h3 id="respond">Ответить</h3>

<?php if ( get_option('comment_registration') && !$user_ID ) : // Если комментирование разрешено только зарегистрированным пользователям ?>

<p>Вы должны быть <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">авторизованы</a>, чтобы комментировать.</p>
<?php else : ?>

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

<?php if ( $user_ID ) : // Если комментатор уже авторизован, то зачем спрашивать его имя, e-mail и сайт?? ?>

<p>Вы вошли как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Log out of this account">Выйти »</a></p>

<?php else : ?>

<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<label for="author"><small>Имя <?php if ($req) _e('(required)'); ?></small></label></p>

<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email"><small>E-Mail (нигде не отображается) <?php if ($req) _e('(required)'); ?></small></label></p>

<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Сайт</small></label></p>

<?php endif; ?>
<!-- Теперь выводим текст-ареа и кнопочку для всех-->
<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>

<p><input name="submit" type="submit" id="submit" tabindex="5" size="22" value="ОК" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
</p>
<?php do_action('comment_form', $post->ID); ?>

Теперь наш блог заслуженно может зваться “Глас народа” и собирать толпы комментаторов и спамеров)).

-=-=-=-=-=-=-=-=

  • header.php - файл заголовка, шапки, мета-информации
  • index.php - основной файл. Осуществляет основную сборку шаблона и вывод записей. Как правило, header, sidebar, footer подключается именно здесь. Оно и понятно - индексный файл в директории сайта отдается в браузер посетителя по дефолту.
  • sidebar.php - файл виджетов, навигации и прочих вкусностей. Может быть не один на сайте.
  • footer.php - подвал - место для всяких ссылок, закрывания открытых блоков..
  • single.php - файл вывода одной записи
  • comments.php - форма комметариев.
  • function.php - файл дополнительного функционала темы.
  • style.css - таблица стилей CSS. Файл боевой раскраски)

Гвозди в тему:




Комментирование запрещено


.



Rambler's Top100 мир Иинтернет блогов BlogMemes.ru Работа на RJB.ru