X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Косяк с comments.php + functions.php. Нужна помощь!
MakLeRz
MakLeRz
Topic Starter сообщение 31.5.2013, 11:54; Ответить: MakLeRz
Сообщение #1


В общем, сейчас верстаю свою тему для блога с нуля. Но вот на днях заметил несколько косяков, связанных с комментариями. Самостоятельно решить не получается.

Итак, комментарии к посту выводятся с помощью <?php comments_template(); ?>

Косяк 1. На страницах постов, у которых 1 и более комментариев, заголовок списка и список комментариев, и форма выводятся нормально. А вот когда у поста нет комментариев, естественно, выводится только форма, но не выводится заголовок комментариев с их количеством, типа "к данному посту уже 1 коммент. и т.д."

Косяк 2. Стоит мне только залогиниться на блоге админом и перейти на страницу с постом, тут появляется другой косяк: заголовок списка и список комментариев выводится, но нет формы комментариев, чтобы оставить отзыв. Вижу только чекбокс с подпиской на комменты и кнопку "добавить комментарий".

Предоставляю содержимое файла comments.php

<div id="comments">
<?php // Do not delete these lines
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Нет смысла загружать этот файл напрямую. Да.');
if ( post_password_required() ) { ?>
  <p class="nocomments">Эта страница - защищена паролем. Введите пароль, чтобы прочитать комментарии</p>
<?php
return;
}
// add a microid to all the comments
function comment_add_microid($classes) {
$c_email=get_comment_author_email();
$c_url=get_comment_author_url();
if (!empty($c_email) && !empty($c_url)) {
  $microid = 'microid-mailto+http:sha1:' . sha1(sha1('mailto:'.$c_email).sha1($c_url));
  $classes[] = $microid;
}
return $classes;
}
add_filter('comment_class','comment_add_microid');
// show the comments
if ( have_comments() ) : ?>
<h4><span class="green">Отзывов к посту <?php the_title('"', '"'); ?> <?php comments_number('пока нет', 'уже: 1', 'уже: %'); ?></span></h4>

<ol class="commentlist" id="singlecomments">
<?php wp_list_comments('callback=custom_comment'); ?>
</ol>


<?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.
else :
  // comments are closed
endif;
endif;
if ('open' == $post-> comment_status) :
// show the form
?>

<div id="respond">
    <h4><?php comment_form_title('Ваш комментарий:', 'Вы отвечаете на отзыв %s'); ?><?php cancel_comment_reply_link('Отмена') ?></h4>
  
    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
  
    <p><a href="<?php echo wp_login_url(get_permalink()); ?>" title="Войдите">Войдите</a>, чтобы написать отзыв.</p>
  
    <?php else : ?>
  
    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
  
    <?php if ( $user_ID ) : ?>
  
        <div class="alignleft">Добро пожаловать, <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a></div>
        <div class="alignright"><a href="<?php echo wp_logout_url(get_permalink()); ?>" title="">Выйти &raquo;</a></div>
  
    <?php else : ?>
  
        <textarea name="comment" id="comment" cols="30" rows="7" tabindex="1"></textarea>
  
    <table>
        <tr>
            <td><div class="comment-input author-field"><input type="text" name="author" id="author" placeholder="Ваше имя" value="<?php echo $comment_author; ?>" tabindex="2"/></div></td>
            <td><div class="comment-input email-field"><input type="text" name="email" id="email" placeholder="Ваша почта" value="<?php echo $comment_author_email; ?>" tabindex="3" /></div></td>
            <td><div class="comment-input url-field"><input type="text" name="url" id="url" placeholder="Сайт" value="<?php echo $comment_author_url; ?>" tabindex="4" /></div></td>
        </tr>
    </table>
<?php endif; ?>
<div class="comment-submit clearfix">
    <div class="pull-left">
    <?php comment_id_fields(); ?>
    <input type="hidden" name="redirect_to" value="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" />
    <?php show_subscription_checkbox(); ?>
    </div>
<div class="pull-right">
<button name="submit" type="submit" id="submit" tabindex="5">Добавить</button>
    <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />  
</div>
</div>
<?php do_action('comment_form', $post->ID); ?>
</form>

<?php endif; // If registration required and not logged in ?>
</div>
<?php endif; // if you delete this the sky will fall on your head ?>

</div><!-- End comments -->


А так же содержимое файла functions.php, отвечающее за комментарии:

/* свой формат комментариев. Its own format comments */
   function custom_comment($comment, $args, $depth) {
   $GLOBALS['comment'] = $comment; ?>
  <li <?php comment_class(); ?> id="li-comment-<?php comment_ID( ); ?>">

    <div id="comment-<?php comment_ID( ); ?>" class="single_comment">
        <?php echo get_avatar( $comment, 48 ); ?>
      
  <div class="comment-wrapper">
        <div class="commentmetadata">
             <?php comment_ID( ); ?>. <span class="comment-author"><?php comment_author_link() ?></span> пишет <?php comment_date('d.m.Y') ?> в <?php comment_time() ?>
             <?php if (function_exists('comment_subscription_status')) { if (comment_subscription_status()) { echo '(подписан на отзывы)'; } } ?> <?php edit_comment_link('Редактировать','| ',''); ?>
        </div>

        <?php if ($comment->comment_approved == '0') : ?>
        <span class="moderation">Ваш отзыв ожидает модерации.</span>
        <?php endif; ?>

        <div class="comment-entry">
           <?php comment_text() ?>
        </div>
    
        <?php echo comment_reply_link(array('before' => '<div class="reply">', 'after' => '</div>', 'reply_text' => 'Ответить', 'depth' => $depth, 'max_depth' => $args['max_depth'] ));  ?>
  </div>
    </div>
<?php }
?>
<?php
add_filter( 'comments_template', 'legacy_comments' );
function legacy_comments( $file ) {
if ( !function_exists('wp_list_comments') )
  $file = TEMPLATEPATH . '/legacy.comments.php';
return $file;
}
?>


Сорри за большое количество кода ;-)

Помогите разобраться с этими косяками...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 31.5.2013, 13:07; Ответить: isvetlichniy
Сообщение #2


В общем, сейчас верстаю свою тему для блога с нуля.


какая версия WP?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MakLeRz
MakLeRz
Topic Starter сообщение 31.5.2013, 13:28; Ответить: MakLeRz
Сообщение #3


3.5.1
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 31.5.2013, 13:50; Ответить: isvetlichniy
Сообщение #4


я не знаю , как ты делаешь тему с нуля, но я обычно делаю так.
для версии 3.5.1 полностью копирую тему twentytwelve (тема тем хорошо, что по сути только основная разметка сделана и все), переименовываю папку со скопированной темой ну и начинаю править под свой шаблон
никаких косяков не возникает никогда. я так уже сделал не один десяток сайтов
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MakLeRz
MakLeRz
Topic Starter сообщение 31.5.2013, 14:54; Ответить: MakLeRz
Сообщение #5


Делаю так: верстаю html-шаблон, а потом начиняю его функциями WP, разбиваю по файлам код.
Тоже думал так сделать, как ты, но не охото было разбираться в коде и удалять ненужные части...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 31.5.2013, 15:10; Ответить: isvetlichniy
Сообщение #6


Делаю так: верстаю html-шаблон, а потом начиняю его функциями WP, разбиваю по файлам код.

как по мне, это намного дольше будет, это первое.
а второе, начнутся вот такие косяки как ты говоришь.
поверь моему опыту.
хотя хозяин - барин
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MakLeRz
MakLeRz
Topic Starter сообщение 31.5.2013, 15:18; Ответить: MakLeRz
Сообщение #7


У меня еще попутный вопрос (еще один косяк объявился): при уменьшении масштаба страницы в браузере у меня съезжают блоки со своих мест, как-будто они не умещаются в родительский блок. Из-за чего может быть? Впервые сталкиваюсь с таким...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 31.5.2013, 18:10; Ответить: isvetlichniy
Сообщение #8


при уменьшении масштаба страницы в браузере у меня съезжают блоки со своих мест,


ну это резиновая верстка. задай фиксированную ширину для родительского блока
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MakLeRz
MakLeRz
Topic Starter сообщение 31.5.2013, 22:10; Ответить: MakLeRz
Сообщение #9


блоку задана ширина и выравнивание по центру.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 31.5.2013, 22:42; Ответить: isvetlichniy
Сообщение #10


может ты сайт покажешь? а то гадаем сидим...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
16 Tia2 2533 Вчера, 21:34
автор: Arsenwenger
Открытая тема (нет новых ответов) Нужна програмка постинга в свои сайты
0 kasey7 385 22.4.2024, 19:54
автор: kasey7
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСостояние после ампутации - нужна помощь
благотворительный топик
49 vitvirtual 5900 1.4.2024, 5:23
автор: vitvirtual
Открытая тема (нет новых ответов) Нужна ли плоская структура категорий в ИМ?
1 noviktamw 1188 26.3.2024, 21:50
автор: c4p1t4l15t
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 631 16.3.2024, 18:41
автор: Taylor


 



RSS Текстовая версия Сейчас: 26.4.2024, 4:20
Дизайн