Зробіть вашу Власну Тему для Wordpress - Частина 4
У частині 4, ми вивчимо як зробити наш comments.php файл. Спочатку я покажу Вам де і як відображатимуться коментарі, і потім ми помістимо необхідні теги. Цей comments.php викликатиметься нашим index.php файл, коли ми відображаємо окремо запис або сторінку. Функція, яка викличе файл, - <?php comments_template(); ?>.
Розміщення коментарів.
Відобразимо зразкову схему розміщення коментарів:

Відкрийте Ваш текстовий редактор, вставте наступний код HTML і збережіть як comments.php
<div id="comments">
<div class="comments_list">
comments list here
</div> <!– close comments list –>
<div class="comments_form">
comments form here
</div> <!– close comments form –>
</div> <!– close comments –>
У comments_list, ми відобразимо коментарі впорядковано. Таким чином ми замінюємо “Comments form here” На список (тег <ol>)? де між тегами <li> (пункт списку) відображатиметься автор і його коментар.
<div class="comments_list">
<ol>
<li>
<div class="comments_author">
comments author here
</div> <!– close comments_author –>
<div class="comments_text">
comments text here
</div>
</li>
</ol>
</div> <!– close comments list –>
Ми не опишемо наш comments_form прямо зараз, тому ми тільки скопіюємо і вставимо html + php код. Не просто пояснити, як це працює, якщо Ви не маєте знань основ php. Тепер ми вставляємо теги Wordpress, необхідні в нашому comments.php. Помістите цей код вище, наших коментарів (вище <div class="comments_list">)
<?php // Не видаляйте цю лінію!!
if (‘comments.php’ == basename($_SERVER[‘SCRIPT_FILENAME’]))
die (‘Please do not load this page directly. Thanks!’);
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">This post is password protected. Enter the password to view comments.<p>
<?php
return;
}
}
/* Ця перемінна буде змінювати фон коментарів */
$oddcomment = ‘alt’;
?>
<div id="comments">
…
Вище <div id = ”comments_list”>, ми поміщаємо функцію <?php if ($comments) : ?>. Wordpress відобразить коментарі, якщо вони є.
<?php if ($comments) : ?>
<div class="comments_list">
Наступна річ, яку ми зробимо, це цикл виведення коментарів. Він починається після тега <ol> і закінчується перед </ol>.
<ol> <?php foreach ($comments as $comment) : ?> <li> і </li> тут. дивися нижче... <?php endforeach; ?> </ol>
Тепер ми зосередимося в нашому циклі. Сконцентруйте всю свою увагу на нім. Добре? Отже, ось - наш початок списку коментарів з <li> і кінцем з </li>. Приблизно так:
<li>
<div class="comments_author">
comments author here
</div> <!– close comments_author –>
<div class="comments_text">
comments text here
</div> <!– close comments_text –>
</li>
Заміним <li> на це: <li class=”<?php echo $oddcomment; ?>” id=”comment-<?php comment_ID() ?>”> Цей код розділяє оформлення парних і непарних коментарів. Тепер за допомогою Вашого CSS файлу Ви зможете набудувати красивий список коментарів. Для виведення автора коментаря вставляємо <? php comment_author_link ()?>. Тепер замінюєм "Comments text here" на <?php comment_text() ?> - це відобразить на нашому сайті текст коментаря. Деякі з Вас могли б використовувати опцію премодерації коментарів. Таким чином ми повинні сказати коментатору, що його коментар чекає перевірки. Щоб зробити це, ми поміщаємо цей код перед нашим <? php comment_text ()?>:
<?php if ($comment->comment_approved == ‘0′) : ?>
<em>Ваш коментар очікує перевірки.</em>
<?php endif; ?>
Тепер додаємо код після <?php endforeach; ?>.
<?php /* Changes every other comment to a different class */
if (‘alt’ == $oddcomment) $oddcomment = ”;
else $oddcomment = ‘alt’;
?>
Але і це ще не все! Ми повинні вставити цей код до comments_list div.
<?php else : // Це відображатиметься, якщо ще нема коментарів ?>
<?php if (‘open’ == $post->comment_status) : ?>
<!– Коментування дозволено, але коментарів нема. –>
<?php else : // comments are closed ?>
<!– Коментування закрито. –>
<p class="nocomments">До даного запису коментування заюоронено.</p>
<?php endif; ?>
<?php endif; ?>
Форма відправки коментарів
Тепер треба дати можливість нашим відвідувачам залишати коментарі. Проте, ми повинні упевнитися, що форма буде доступна користувачам. Це перевіряється за допомогою функції <?php if (’open’ == $post->comment_status) : ?>. Вставляємо її перед <div class="comments_form">. Можливо, що Ви хочете дозволити тільки зареєстрованим і авторизованим користувачам. Тоді код виглядатиме так:
<?php if (‘open’ == $post->comment_status) : ?>
<?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 : ?>
<div class="comments_form">
Після всієї comments_form, перевіряємо кінець циклу. Нарешті, наш comments.php схожий на це:
<?php // Do not delete these lines
if (‘comments.php’ == basename($_SERVER[‘SCRIPT_FILENAME’]))
die (‘Please do not load this page directly. Thanks!’);
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">This post is password protected. Enter the password to view comments.<p>
<?php
return;
}
}
/* Ця перемінна буде змінювати фон коментарів */
$oddcomment = ‘alt’;
?>
<div id="comments">
<?php if ($comments) : ?>
<div class="comments_list">
<ol>
<?php foreach ($comments as $comment) : ?>
<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
<div class="comments_author">
<?php comment_author_link() ?>
</div> <!– close comments_author –>
<div class="comments_text">
<?php if ($comment->comment_approved == ‘0′) : ?>
<em>Ваш коментар очікує перевірки.</em>
<?php endif; ?>
<?php comment_text() ?>
</div> <!– close comments_text –>
</li>
<?php /* Changes every other comment to a different class */
if (‘alt’ == $oddcomment) $oddcomment = ”;
else $oddcomment = ‘alt’;
?>
<?php endforeach; ?>
</ol>
</div> <!– close comments_list –>
<?php else : // this is displayed if there are no comments so far ?>
<?php if (‘open’ == $post->comment_status) : ?>
<!– If comments are open, but there are no comments. –>
<?php else : // comments are closed ?>
<!– If comments are closed. –>
<p class="nocomments">Коментування закрито.</p>
<?php endif; ?>
<?php endif; ?>
<?php if (‘open’ == $post->comment_status) : ?>
<?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 : ?>
<div class="comments_form">
<!– Форма відправки коментаря, редактувати обережно! –>
<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="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) echo "(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>Е-Mail (не публікується) <?php if ($req) echo "(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; ?>
<?php smilies_clickable(); ?>
<p><textarea name="comment" id="comment" cols="50" 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>
<!– Кінець форми коментування! –>
<div class="comment_meta">
<?php if ($post-> comment_status == "open" && $post->ping_status == "open") { ?>
<p>
<a href="<?php trackback_url(display); ?>">Trackback this post</a> | <?php comments_rss_link(‘Subscribe to the comments via RSS Feed’); ?>
</p>
<?php } elseif ($post-> comment_status == "open") {?>
<p>
<?php comments_rss_link(‘Subscribe to the comments via RSS Feed’); ?>
</p>
<?php } elseif ($post->ping_status == "open") {?>
<p>
<a href="<?php trackback_url(display); ?>">Trackback this post</a>
</p>
<?php } ?>
</div>
<?php endif; // If registration required and not logged in ?>
</div> <!– close comments form –>
<?php endif; // if you delete this the sky will fall on your head ?>
</div> <!– close comments –>
Ви читаєте четверту частину статті “Зробіть вашу Власну Тему для Wordpress”. Для того, щоб ознайомитися з іншими частинами натисніть на посилання нижче.
- Частина 1 - Шари (Layout)
- Частина 2 - Заголовок (Header)
- Частина 3 - Індекс (Index)
- Частина 4 - Коментар (Comment)
- Частина 5 - Меню блога (Sidebar)
- Частина 6 - Нижня частина - підвал (Footer)
- Частина 7 - Фініш! (Останні доведення і поради)
gdfgf gdfgdsf gdsfgsdgs gdsfgds g hqtube om
gdfgds gdsfgdsfg gdfsgdfg gdsfgdf hot tube heaters