Проблема с плагином WP-CommentNavi

Здравствуйте! Помогите, пожалуйста, с плагином разбивки комментариев на страницы. Никак не могу его интегрировать в свой шаблон. Уже куда я только не вставлял код плагина в свою страницу, ничего не получается.

Чтобы встроить навигацию в ваш шаблон найдите в файле comments.php строчки (на примере шаблона Default):

<div class="navigation">
    <div class="alignleft"><?php previous_comments_link() ?></div>
    <div class="alignright"><?php next_comments_link() ?></div>
</div>

И замените их на:

<?php if(function_exists('wp_commentnavi')) { wp_commentnavi(); } ?>

Вот моя страница 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">Эта публикация защищена паролем. Пожалуйста, введите его для просмотра комментариев.</p>

            <?php
            return;
        }
    }

    /* This variable is for alternating comment background */
    $oddcomment = 'class="alt" ';
?>

<!-- You can start editing here. -->

<?php if ($comments) : ?>
    <h3 id="comments"><?php comments_number('Комментарий нет', 'Один комментарий', 'Комментариев: %' );?> на &laquo;<?php the_title(); ?>&raquo;</h3>


    <ol class="commentlist">


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

    <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">

<?php echo get_avatar( $comment, $size = '50'); ?>            
                        <cite><strong><?php comment_author_link() ?></strong></cite> пишет:
            <?php if ($comment->comment_approved == '0') : ?>
            <em>Спасибо! Ваш комментарий ожидает проверки.</em>
            <?php endif; ?>
            <br />


            <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('d M Y') ?> в <?php comment_time() ?></a> <?php edit_comment_link('править','&nbsp;&nbsp;',''); ?></small>



            <?php comment_text() ?>

    </li>    

    <?php
        /* Changes every other comment to a different class */
        $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';
    ?>

    <?php endforeach; /* end for each 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. -->

     <?php else : // comments are closed ?>
        <!-- If comments are closed. -->
        <p class="nocomments">Комментарии закрыты.</p>

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


<?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 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="Выйти с этого аккаунта">Выйти &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) echo "*"; ?></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>Почта (не публикуется) <?php if ($req) echo "*"; ?></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><small><strong>XHTML:</strong> Вы можете использовать следующие теги: <code><?php echo allowed_tags(); ?></code></small></p> -->

<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
<?php if (function_exists('qipsmiles')) qipsmiles('ru'); ?>
<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; // If registration required and not logged in ?>

<?php endif; // if you delete this the sky will fall on your head ?>
comments

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

Судя по всему код нужно вставить перед этой строчкой:
<?php else : // this is displayed if there are no comments so far ?>

Вы говорите, – "ничего не получается". Как понять? Навигация вообще не появляется, или появляется не там где нужно? Подробнее можно?

Kama, вставил код <?php if(function_exists(‘wp_commentnavi’)) { wp_commentnavi(); } ?> как вы и советовали, теперь отображаются все комментарии, а внизу под комментариями выводит "Страница 18 из 0" и "<<" для перехода на предыдущую страницу но при клике открывает ту же самую страницу с полностью всеми комментариями, только уже внизу пишет "Страница 17 из 0".

До этого, когда сам экспериментировал, бывало эта надпись вываливалась в каждом комментарии – но это я думаю не туда я засунул код строчки.

К одной заметке уже 854 комментария и все грузятся на одной странице, а хотелось бы штук по 50 на страницу.

Странно. Я с такой проблемой не сталкивался, даже не знаю в чем может быть причина.

Мне кажется, тут что-то с чем-то конфликтует, может плагин какой, плагины отключить пробовали?

Так же, попробуйте в настройках блога пошаманить: Настройки -> Комментирование. Там задаются параметры, как разбивать комментирии, использовать древовидное вложение комментириев (если у вас не древовидные комменты, отключите эту опцию). В сами настройки wp_commentnavi тоже загляните еще раз (хотя, думаю причина не в плагине).

А вообще, у 2.9+ версий предусмотрена своя пагинация в комментариях, без плагинов всяких. Для этого нужно установить нужные параметры в настройках (Настройки -> Комментирование) WordPress и, где я до этого говорил, вставить вместо:
<?php if(function_exists(‘wp_commentnavi’)) { wp_commentnavi(); } ?>

это
<div class="navigation">
<?php paginate_comments_links(); ?>
</div>

А вообще, у 2.9+ версий предусмотрена своя пагинация в комментариях, без плагинов всяких.

2.7+

С запасом взял 😀

[quote=Kama]А вообще, у 2.9+ версий предусмотрена своя пагинация в комментариях, без плагинов всяких.

2.7+[/quote]
В дефолтной теме все работает, я правда не пробовал в ней включать этот плагин и изменять строчки, но точно помню, что если включить разбиение комментариев на странице, то комментарии разбиваються и появляется "предыдущая-следующая".

А вот в моей теме, при включении опции разбиения комментариев, без плагина вобще ничего не меняется и не появляется.

Вот поэтому и искал плагин, думал поможет. А выходит проблемы именно в теме.

Подскажите, пожалуйста, где искать ошибки в теме, а лучше конечно укажите где ошибки 🙂

Попробуйте просто подложить своей Теме comments.php от default.

После дня экспериментов, мне все-таки удалось реализовать разбивку комментариев на страницы, но пришлось избавиться от некоторого кода в страничке comments.php.
Подскажите, что это за строчки и за что они отвечают, так как внешний вид комментариев немного изменился (размер аватар, шрифт имени автора комментария).

Или где это можно подсмотреть, так сказать теорию, а то в интернете ничего толкового не нашел.

Удалил этот код:

<ol class="commentlist">


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

    <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">

<?php echo get_avatar( $comment, $size = '50'); ?>            
                        <cite><strong><?php comment_author_link() ?></strong></cite> пишет:
            <?php if ($comment->comment_approved == '0') : ?>
            <em>Спасибо! Ваш комментарий ожидает проверки.</em>
            <?php endif; ?>
            <br />


            <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('d M Y') ?> в <?php comment_time() ?></a> <?php edit_comment_link('править','&nbsp;&nbsp;',''); ?></small>



            <?php comment_text() ?>

    </li>    

    <?php
        /* Changes every other comment to a different class */
        $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';
    ?>

    <?php endforeach; /* end for each comment */ ?>

    </ol>

Вместо него прописал:

<ol class="commentlist">
    <?php wp_list_comments(); ?>
    </ol>

    <p><?php if(function_exists('wp_commentnavi')) { wp_commentnavi(); } ?></p>

Я не верю, что на таком популярном форуме нету специалистов по функциям. Или же все очень заняты. Другой причины столь долгого молчания я не вижу.:(

Немного удалось самому разобраться.
Нашел описания функции wp_list_comments, правда на английском.
Удалось поправить размер аватарки, как было у меня прежде.

<?php wp_list_comments('avatar_size=50'); ?>

А вот за что конкретно отвечают остальные строки, которые я удалил, так и остается загадкой.

Буду дальше рыть инет.
Вот только бы подсказали где толково все описано, был бы очень признателен.

Видимо, Ваши изыскания просто никому не интересны.

Читайте Кодекс – самый авторитетный источник знаний по WoedPress.

Очень жаль.
Спасибо, буду читать.

Anonymous
Отправить
Ответ на: