Создание темы для WordPress с нуля. Часть 5
comments.php
Настало время разрешить нашим пользователям разговаривать – дать им свободу слова через форму комментирования. Но сперва разрешим им почитать, что уже сказали другие. Осуществим вывод комментариев.
Сначала проверим, а не защитил ли автор запись паролем?
1 2 3 4 5 6 7 8 9 | <?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; } ?> |
А теперь можно и выводить комментарии. Если, конечно, они у Вас есть!
1 2 3 4 5 6 7 8 9 | <?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 – Время.
Строим блок комментария и помещаем его в цикл – все элементарно.
1 2 3 4 5 6 | <?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; ?> |
А теперь выводим форму для добавления комментариев, не забывая выполнить проверки на то, разрешены или нет комментарии к этому посту. В итоге у Вас должно получиться примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?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="ur" 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); ?> </form> |
Теперь наш блог заслуженно может зваться “Глас народа” и собирать толпы комментаторов и спамеров)).
Урок создан: Январь 19th, 2010 Просмотров: 262 Комментарии RSS 2.0

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