Перемешались комментарии в Wordpress

MariaNW
На сайте с 26.03.2009
Offline
50
959

По совету SeVlad в топике Спрашиваем и отвечаем по Wordpress-7 создаю отдельную тему.

Еще раз описание проблемы:

Здравствуйте,

У меня очень странная проблема, нигде в интернете не могу даже упоминания найти ни о чем подобном...

После небольших программных доработок сайта перемешались все комментарии к записям. В админке все по-старому: все комментарии отображаются у своих записей. На сайте при этом каждый из них у другой случайной записи. Не осталось ни одного коммента на своем месте.

Программист уверяет, что его работа никак не могла сказаться на комментариях и что он не при чем.

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

Комменты выводятся так:

<?php comments_template(); ?>

Содержимое comments.php

<?php

function mytheme_comment($comment, $args, $depth) { global $wpdb;
$GLOBALS['comment'] = $comment; ?>
<a name="comment-<?php comment_ID() ?>"></a><li id="comment-<?php comment_ID() ?>">
<div class="comment">
<div class="name"><?php comment_author_link(); ?></div>
<?php comment_text(); ?>
<div class="date">Добавлено <?php echo get_comment_date('d.m.Y'); ?></div>
</div>
<?php } ?>

<?php if ( comments_open() ) : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">
<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<div class="title">Вам необходимо зарегистрироваться и авторизироваться, что бы оставлять комментарии.</div>
<?php else : ?>
<div class="title">Добавить комментарий</div>
<?php if ( $user_ID ) : else : ?>
<div class="input">Имя <input type="text" name="author" value="" /></div>
<div class="input">Email <input type="text" name="email" value="" /></div>
<?php endif; ?>
<div class="input">Комментарий <textarea name="comment"></textarea></div>
<?php if ( $user_ID ) {} else { if( function_exists(checkbot_show) ) { checkbot_show(); } } ?>
<div class="input submit"><input type="submit" value="Отправить" name="submit" /></div>
<?php comment_id_fields(); ?>
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; ?>

<?php if ( have_comments() ) : ?>

<ul class="commentlist">
<?php wp_list_comments('callback=mytheme_comment'); ?>
</ul>

<?php else : ?>

<div class="title">На данный момент комментариев нет.</div>

<?php endif; ?>

<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">
<div class="title">Комментирование закрыто</div>
</form>
<?php endif; ?>

На сайте стояла капча http://deadblog.ru/checkbot/, но она стала серьезно пробиваться ботами, и я попросила программиста заменить ее на http://wp-kama.ru/id_95/plagin-dlya-blokirovki-spama-v-kommentariyah-dlya-wordpress.html (это только один из пунктов его работы, но не знаю, с чем еще связать проблему).

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

		<?php if ( $user_ID ) {} else { if( function_exists(checkbot_show) ) { checkbot_show(); } } ?>

Провела эксперимент и деактивировала чекбот - комменты перемешались заново! :confused: В админке все по-прежнему правильно. Деактивация и чекбота, и kama spam ничего не дает. Похоже на мистику.

Если кто-то знает, в чем проблема, помогите, пожалуйста, я заплачу при необходимости.

---------- Добавлено 19.06.2014 в 21:25 ----------

Немного иллюстраций:

Последний коммент в админке - http://joxi.ru/UB2jUxjKTJBrH5uoDco

На сайте я его так пока и не нашла. Зато у этой записи отображается другой коммент (старше ее на пару месяцев, кстати) - http://joxi.ru/mB2jU_3JTJApY_FvOHA

Продавай статьи на сайте дороже, чем в GGL (http://webartex.ru/?r=lbspztyn). Тексты напишут за тебя! А здесь (http://trustlink.ru/registration/146923) можно продавать ссылки с сайта выгоднее, чем в Sape.
SeVlad
На сайте с 03.11.2008
Offline
1609
#1
MariaNW:
Программист уверяет, что его работа никак не могла сказаться на комментариях и что он не при чем.

Ох уж эти "программисты" :)

  <?php endif; ?>  

<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">
<div class="title">Комментирование закрыто</div>
</form>
<?php endif; ?>

Сильно :) Причём 2 раза "сильно".

MariaNW, думаю, надо восстановить из бекапа старый comments.php и заставить "программиста" сделать правильно или компенсировать работу другого специалиста.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
MariaNW
На сайте с 26.03.2009
Offline
50
#2

Спасибо за ответ!

Есть бекап, я сравнила обе версии comments.php и не нашла разницы... Может, не вижу чего-то. Копирую полностью:

<?php

function mytheme_comment($comment, $args, $depth) { global $wpdb;
$GLOBALS['comment'] = $comment; ?>
<a name="comment-<?php comment_ID() ?>"></a><li id="comment-<?php comment_ID() ?>">
<div class="comment">
<div class="name"><?php comment_author_link(); ?></div>
<?php comment_text(); ?>
<div class="date">Добавлено <?php echo get_comment_date('d.m.Y'); ?></div>
</div>
<?php } ?>

<?php if ( comments_open() ) : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">
<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<div class="title">Вам необходимо зарегистрироваться и авторизироваться, что бы оставлять комментарии.</div>
<?php else : ?>
<div class="title">Добавить комментарий</div>
<?php if ( $user_ID ) : else : ?>
<div class="input">Имя <input type="text" name="author" value="" /></div>
<div class="input">Email <input type="text" name="email" value="" /></div>
<?php endif; ?>
<div class="input">Комментарий <textarea name="comment"></textarea></div>
<?php if ( $user_ID ) {} else { if( function_exists(checkbot_show) ) { checkbot_show(); } } ?>
<div class="input submit"><input type="submit" value="Отправить" name="submit" /></div>
<?php comment_id_fields(); ?>
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; ?>

<?php if ( have_comments() ) : ?>

<ul class="commentlist">
<?php wp_list_comments('callback=mytheme_comment'); ?>
</ul>

<?php else : ?>

<div class="title">На данный момент комментариев нет.</div>

<?php endif; ?>

<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post">
<div class="title">Комментирование закрыто</div>
</form>
<?php endif; ?>


---------- Добавлено 19.06.2014 в 23:26 ----------

Если вам несложно, напишите в двух словах, что в коде не так и почему с комментариями такое случилось. Пока даже не знаю, как программисту аргументировать просьбу переделать.
SeVlad
На сайте с 03.11.2008
Offline
1609
#3
MariaNW:
что в коде не так и почему с комментариями такое случилось.

Почему такое с комментами - сказать пока не могу, надо разбираться. А с тем куском кода "не так" - наличие формы.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий