• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Перестала работать конструкция вывода последних комментов на WP3

Статус
В этой теме нельзя размещать новые ответы.

b2farm

Мой дом здесь!
Регистрация
17 Фев 2008
Сообщения
544
Реакции
202
Есть функция в шаблоне, отвечающая за вывод последних комментов по заданному шаблону:
PHP:
function u_get_recent_comments($no_comments = 5, $before = '<li>', $after = '</li>', $show_pass_post = false) {

	global $wpdb, $tablecomments, $tableposts;
	$request = "SELECT ID, comment_ID, comment_content, comment_author FROM $tableposts, $tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND (post_status = 'publish' OR post_status = 'static')";

if(!$show_pass_post) { $request .= "AND post_password ='' "; }

    $request .= "AND comment_approved = '1' ORDER BY $tablecomments.comment_date DESC LIMIT 

$no_comments";
    $comments = $wpdb->get_results($request);
    $output = '';
    foreach ($comments as $comment) {
       $comment_author = stripslashes($comment->comment_author);
       $comment_content = strip_tags($comment->comment_content);
       $comment_content = stripslashes($comment_content);
       $comment_excerpt =substr($comment_content,0,50);
       $comment_excerpt = u_utf8_trim($comment_excerpt);
       $permalink = get_permalink($comment->ID)."#comment-".$comment->comment_ID;
       $output .= $before . '<a href="' . $permalink . '" title="View the entire comment by ' . $comment_author . '"><strong>' . $comment_author . '</strong>: ' . $comment_excerpt . '...</a>' . $after;
       }
       echo $output;
}
которая выводится в нужном месте конструкцией
PHP:
<?php  u_get_recent_comments(6);      ?>

после обновления до версии 3.0 функция ничерта не выводит, просто пустое место без всяких ошибок. структура таблиц в свежей версии вроде не менялась, в чем же тогда может быть косячок?
 
могу лишь посоветовать добавить вот такой простой код записи ошибок в лог и посмотреть в чем причина:
 
могу лишь посоветовать добавить вот такой простой код записи ошибок в лог и посмотреть в чем причина:
*** скрытое содержание ***
либо ошибок нет, либо лог не создается :ah:
 
Замени вот эти строчки:
PHP:
global $wpdb, $tablecomments, $tableposts;
    $request = "SELECT ID, comment_ID, comment_content, comment_author FROM $tableposts, $tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND (post_status = 'publish' OR post_status = 'static')";

if(!$show_pass_post) { $request .= "AND post_password ='' "; }

    $request .= "AND comment_approved = '1' ORDER BY $tablecomments.comment_date DESC LIMIT 

$no_comments";
на вот эти:
PHP:
  global $wpdb;
    $request = "SELECT ID, comment_ID, comment_content, comment_author FROM  $wpdb->posts, $wpdb->comments WHERE $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND (post_status = 'publish' OR post_status = 'static')";

if(!$show_pass_post) { $request .= "AND post_password ='' "; }

    $request .= "AND comment_approved = '1' ORDER BY $wpdb->comments.comment_date DESC LIMIT $no_comments";
и все будет работать.
Не уверен что в третьей версии, возможно и раньше, пропали глобальные переменные tablecomments, tableposts.
 
Замени вот эти строчки:
PHP:
global $wpdb, $tablecomments, $tableposts;
    $request = "SELECT ID, comment_ID, comment_content, comment_author FROM $tableposts, $tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND (post_status = 'publish' OR post_status = 'static')";
if(!$show_pass_post) { $request .= "AND post_password ='' "; }
    $request .= "AND comment_approved = '1' ORDER BY $tablecomments.comment_date DESC LIMIT 
$no_comments";
на вот эти:
PHP:
  global $wpdb;
    $request = "SELECT ID, comment_ID, comment_content, comment_author FROM  $wpdb->posts, $wpdb->comments WHERE $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND (post_status = 'publish' OR post_status = 'static')";
if(!$show_pass_post) { $request .= "AND post_password ='' "; }
    $request .= "AND comment_approved = '1' ORDER BY $wpdb->comments.comment_date DESC LIMIT $no_comments";
и все будет работать.
Не уверен что в третьей версии, возможно и раньше, пропали глобальные переменные tablecomments, tableposts.
спасибо, действительно прозевал отмену $tablecomments, $tableposts; так как не обновлялся до этого даже до 2.9
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху