Вид ссылки на комментарий

В первую очередь, хочу поздравить всех форумчан с Днем Победы!

Ну и к сути проблемы: как известно, WordPress умеет выводить список последних комментариев блоком в сайдбаре (а точнее, список ссылок на последние комментарии).

На имеющемся у меня сайте эти ссылки имеют следующий вид: http://moi-sait.net/?p=149#comment-12

Сама функция выводится кодом:

<li><h2>Recent Comments</h2> 
         
                     <?php 
    global $wpdb; 

    $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, 
    comment_post_ID, comment_author, comment_date_gmt, comment_approved, 
    comment_type,comment_author_url, 
    SUBSTRING(comment_content,1,30) AS com_excerpt 
    FROM $wpdb->comments 
    LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = 
    $wpdb->posts.ID) 
    WHERE comment_approved = '1' AND comment_type = '' AND 
    post_password = '' 
    ORDER BY comment_date_gmt DESC 
    LIMIT 10"; 
    $comments = $wpdb->get_results($sql); 

    $output = $pre_HTML; 
    $output .= "\n<ul>"; 
    foreach ($comments as $comment) { 

    $output .= "\n<li>".strip_tags($comment->comment_author) 
    .":" . "<a href=\"" . get_permalink($comment->ID) . 
    "#comment-" . $comment->comment_ID . "\" title=\"on " . 
    $comment->post_title . "\">" . strip_tags($comment->com_excerpt) 
    ."</a></li>"; 

    } 
    $output .= "\n</ul>"; 
    $output .= $post_HTML; 

    echo $output;?> 
    </li>

Хотелось бы, что ссылки вели не к последнему коментарию, а просто на страницу поста, т.е. имели вид:
http://moi-sait.net/?p=149 (без #comment-12 и т.п.)
Как правильно исправить код? По совету с другого форума пытался удалить из кода все упоминания comment_ID – не помогло…

$output .= "\n<li>".strip_tags($comment->comment_author)
.":" . "<a href=\"" . get_permalink($comment->ID) .
"#comment-" . $comment->comment_ID . "\" title=\"on " .
$comment->post_title . "\">" . strip_tags($comment->com_excerpt)
."</a></li>";

Красное – удалить.

$output .= "\n<li>".strip_tags($comment->comment_author) 
    .":" . "<a href=\"" . get_permalink($comment->ID) . 
    "#comment-" . $comment->comment_ID . "\" title=\"on " . 
    $comment->post_title . "\">" . strip_tags($comment->com_excerpt) 
    ."</a></li>";

Красное - удалить.

Удалил – не помогло… Ссылки выглядят как и раньше. А может быть это как-то связанно с тем, что у меня навигация (вкл. список последних комментариев) выводится виджетами?

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

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

Неверно сформулировал. Исполняется кодом, а вот вызывается – виджетом. Соответственно, если в настройках темы добавить в сайдбар виджет "Последнии коментарии", то они будут отображаться. Тем не менее, сам код, приведенный выше, прописан в теме (в файле sidebar.php).

Если это код от виджета, то изменения должны быть видны.

Если это код от виджета, то изменения должны быть видны.

Сам код взят из sidebar.php Он заключен в функцию:

<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(2) ) : else : ?><?php endif; ?>

Так, сейчас взял и вынес весь приведенный код за пределы php if/php endif, отключил вывод виджета "Последние коментарии" и удалил "#comment-" . $comment->comment_ID в коде сайдбара. Как результат, ссылка теперь выводится нужным мне образом. Но… возник другой вопрос: где в WP лежат коды виджетов? Т.е., где нужно редактировать код функции выводимой виджетом?

Забудьте про свой другой вопрос. Если уже умеете обходится без виджетов, то и обходитесь без них. По крайней мере, при таком подходе при апдейте движка Вам не придется вспоминать какой файл и как подвергся хаку.

2 вопроса.
1- как сделать что бы ссылка ведущая к тебе с комментариями была не на авторе а на тексте комментария?
2- Сейчас

admin
: Тест…

А нужно
admin: Тест…

код в самом начале темы.

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