Несколько ручных настроек WordPress для комментариев
Добавить ссылки “Edit-Delete-Spam” в комментарий:
Вставить код в functions.php-файл:
function delete_comment_link($id) {
if (current_user_can('edit_post')) {
echo '| <a href="'.admin_url("comment.php?action=cdc&c=$id").'">del</a> ';
echo '| <a href="'.admin_url("comment.php?action=cdc&dt=spam&c=$id").'">spam</a>';
}
}
После сохранения functions.php, откройте comments.php и добавьте следующий код туда, где вы хотите видеть ссылки:
1
delete_comment_link(get_comment_ID());
Отделить трэкбеки от комментариев:
Найдите в comments.php
foreach ($comments as $comment) : ?>
// Comments are displayed here
endforeach;
и замените на
<ul class="commentlist">
<?php //Displays comments only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>
<li>//Comment code goes here</li>
<?php }
endforeach;
</ul><ul>
<?php //Displays trackbacks only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php }
endforeach;</ul>
Выделить авторские комментарии:
В comments.php найти
<?php foreach comment as $comment) { ?>
После этой строки вставить
<?php
$isByAuthor = false;
if($comment->comment_author_email == get_the_author_email()) {
$isByAuthor = true;
}
?>
Найти строку кода, которая представляет комментарии:
<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
Теперь у нас есть класс
authorcomment
для вывода:
<li class="<?php echo $oddcomment; ?> <?php if($isByAuthor ) {
echo 'authorcomment';} ?>" id="comment-<?php comment_ID() ?>">
Последнее – в файле style.css вставьте код, заменив данный цвет на нужный вам:
.authorcomment{
color:#fff;
font-weight:bold;
background:#068;
}
Виджет с последними комментариями:
Вставьте код туда, где они будут отображаться, указав число выводимых комментариев после LIMIT
:
<?php
$pre_HTML ="";
$post_HTML ="";
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;
?>
Выведение на экран наиболее комментируемых постов:
Вставьте этот код туда, где будет ваш список, изменив сроки в третьей строке:
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2009-06-01' AND '2009-07-01' ORDER BY comment_count DESC LIMIT 0 , 10");foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
?>
<li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
<?php }
}
?>
</ul>
Popularity: 35% [?]
Еще статьи на тему