php Топкомментаторовспобедителями
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Топкомментаторовспобедителями相关的知识,希望对你有一定的参考价值。
function sp_top_commentator_winners(){
global $wpdb;
$length = 0; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
$month = true; // true - за текущий месяц, false - за все время
$comment = true; // показывать количество комментариев
$nofollow = true; // ссылки nofollow
$count = 8; // количество комментаторов
$col = 4; // количество колонок
$avatarSize = 85; // размер аватара
$exceptionEmail = 'sneginka-anna@mail.ru, sneginka.anna@gmail.com'; // мыла-исключения
$lengthMin = 10; // минимальное количество символов в учитываемом комментарии
$showWinners = true; // показывать победителей
$countWinners = 3; // количество победителей
$showDays = 28; // количество дней, которое показываются победители
$separator = '<hr style="display:block;margin-bottom:5px"><div class="win_mothers">Победители прошлого месяца!</div>'; // разделитель ТОПа и победителей
$results = get_transient( 'sp_top_commentator' );
if ( false === $results ) {
$results = $wpdb->get_results('
SELECT
COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
FROM
(select * from '.$wpdb->comments.' where CHAR_LENGTH(comment_content) > '. $lengthMin .' order by comment_ID desc) as pc
WHERE
comment_author_email != "" AND
comment_type = "" AND
comment_approved = 1 AND
comment_author_email NOT IN ('.preg_replace('/([\w\d\.\-_]+@[\w\d\.\-_]+)(,? ?)/','"\\1"\\2',$exceptionEmail).')'.
($month ? 'AND month(comment_date) = month(now()) and year(comment_date) = year(now())' : '').
'GROUP BY
comment_author_email
ORDER BY
comments_count DESC,
comment_ID ASC
LIMIT '.$count
);
set_transient( 'sp_top_commentator', $results, DAY_IN_SECONDS );
}
$firstIteration = true; // отвечает за то чтобы было всего две итерации
do {
$output = '<div class="top-comment">';
$i = 1;
foreach($results as $result){
if ($i%$col == 0) {$one_col_last = 'last';} else {$one_col_last = '';} $i++;
$output .= '<div class="one-top-coment '. $one_col_last.'"><div class="avatar-top">'.get_avatar($result->comment_author_email,$avatarSize).'</div><div class="avatar-comment">';
if ($length and $length<mb_strlen($result->comment_author)) $result->comment_author = trim(mb_substr($result->comment_author, 0, $length)).'.';
if ($result->comment_author_url) {
$url = $result->comment_author_url;
$output .= '<a class="link-commentators" target="_blank" data-url="'.$url.'">'.$result->comment_author.'</a>';
} else {
$output .= $result->comment_author;
}
if ($comment) $output .= '<sub>'.$result->comments_count.'</sub>';
$output .= '<div style="clear:both;"></div></div></div>';
}
$output .= '</div>';
echo $output;
if ($showWinners and date('j') <= $showDays and $firstIteration) {
$results = get_transient( 'special_query_results_winners' );
if ( false === $results ) {
$results = $wpdb->get_results('
SELECT
COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
FROM
(select * from '.$wpdb->comments.' where CHAR_LENGTH(comment_content) > '. $lengthMin .' order by comment_ID desc) as pc
WHERE
comment_author_email != "" AND
comment_type = "" AND
comment_approved = 1 AND
comment_author_email NOT IN ('.preg_replace('/([\w\d\.\-_]+@[\w\d\.\-_]+)(,? ?)/','"\\1"\\2',$exceptionEmail).') AND
comment_date > LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) AND
comment_date < DATE_ADD(LAST_DAY(CURDATE() - INTERVAL 1 MONTH), INTERVAL 1 DAY)
GROUP BY
comment_author_email
ORDER BY
comments_count DESC,
comment_ID ASC
LIMIT '.$countWinners
);
set_transient( 'special_query_results_winners', $results , WEEK_IN_SECONDS);
}
echo $separator;
$firstIteration = false;
} else {
$showWinners = false;
}
} while($showWinners);
}
以上是关于php Топкомментаторовспобедителями的主要内容,如果未能解决你的问题,请参考以下文章
php 帖子Поискпонесколькимкастомфлдамвыгребаетпостыопределенноготипаитаксономиисопределеннымикастомфилд
html Примерныйспособмикроразметкиконтактов
css Когдатекстразбиваетсянаколонки,тобраузерпытаетсяравномернораспределитьсодержимоеблокапоуказанном
php Отправкаписьмапридобавленииэлементаинфоблока
php 自定义数据库查询кастомныйзапроскбазе,выбратьвсепостысразнымзначениемкастомфилда