Скин для WP своими руками (comments.php)

Пришел черед разобрать файл comments.php – врезку комментариев нашего блога.

<?php // Не модифицируйте этот кусок кода
if (‘comments.php’ == basename($_SERVER[‘SCRIPT_FILENAME’]))
die (‘Не загружайте эту страницу напрямую, пожалуйста. Спасибо!’);
if (!empty($post->post_password)) { // если установлен пароль на комментарии
if ($_COOKIE[‘wp-postpass_’ . COOKIEHASH] != $post->post_password) {  // и его нет в файле cookie ?>
<p><?php _e(«Это сообщение защищено паролем. Введите пароль для просмотра комментариев.»); ?><p>
<?php
return;
}
}

/* Эта переменная используется для изменения фона комментариев*/
$oddcomment = ‘alt’;
?>

<!— А вот отсюда можете редактировать, как хотите… —>

<?php if ($comments) : ?> <!— Считаем комментарии… —>
<h3><?php comments_number(‘Ответов нет’, ‘Один ответ’, ‘% ответа’ );?> на &#8220;<?php the_title(); ?>&#8221;</h3>

<ol>

<?php foreach ($comments as $comment) : ?>

<li class=»<?php echo $oddcomment; ?>» id=»comment-<?php comment_ID() ?>»>
<cite><?php comment_author_link() ?></cite> сказал(а):
<?php if ($comment->comment_approved == ‘0’) : ?>
<em>Ваш ответ ожидает премодерации.</em> <!— Сообщение о добавлении комментария на премодерацию… —>
<?php endif; ?>
<br />

<small><a href=»#comment-<?php comment_ID() ?>» title=»»><?php comment_date(‘F jS, Y’) ?> в <?php comment_time() ?></a> <?php edit_comment_link(‘e’,»,»); ?></small>

<?php comment_text() ?>

</li>

<?php /* Изменяет каждый последующий комментарий, как отдельный класс */
if (‘alt’ == $oddcomment) $oddcomment = »;
else $oddcomment = ‘alt’;
?>

<?php endforeach; /* завершение каждого комментария */ ?>

</ol>

<?php else : // Это отображается, если комментариев пока нет ?>

<?php if (‘open’ == $post-> comment_status) : ?>
<!— Коммментарии разрешены, но пока их нет. —>

<?php else : // comments are closed ?>
<!— Комментарии закрыты. —>
<p>Комментарии закрыты.</p>

<?php endif; ?>
<?php endif; ?>

<?php if (‘open’ == $post-> comment_status) : ?><!— Форма добавления комментария… —>

<h3>Оставить ответ</h3>

<?php if ( get_option(‘comment_registration’) && !$user_ID ) : ?>
<p>Вы должны быть <a href=»<?php echo get_option(‘siteurl’); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>»>зарегистрированы</a> для добавления коментариев.</p>
<?php else : ?>

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

<?php if ( $user_ID ) : ?>

<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=»<?php _e(‘Log out of this account’) ?>»>Выйти &raquo;</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(‘(обязательно)’); ?></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(‘(обязательно)’); ?></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>web-сайт</small></label></p>

<?php endif; ?>

<p><small><strong>XHTML:</strong> Вы можете использовать эти теги: <?php echo allowed_tags(); ?></small></p>

<p><textarea name=»comment» id=»comment» cols=»60%» rows=»10″ tabindex=»4″></textarea></p>

<p><input name=»submit» type=»submit» id=»submit» tabindex=»5″ value=»Прокомментировать» />
<input type=»hidden» name=»comment_post_ID» value=»<?php echo $id; ?>» />
</p>
<?php do_action(‘comment_form’, $post->ID); ?>

</form>

<?php endif; // Если необходима регистрация и вход не выполнен ?>

<?php endif; ?>

Ну, вот, пожалуй и всё на сегодня. Напомню, что нам с Вами осталось рассмотреть из крупных файлов кода – comments-popup.php и search.php, остальное я сведу в одно занятие. Удачи в экспериментах.

4 комментария

  1. avatar

    Дмитрий

    Весь вечер потратил на поиск хорошей и — главное — рабочей и понятной формы комментариев для Вордпресс. Ваша работает и в ней абсолютно каждая строка понятна! Благодарю за статью! :idea: