[WP] Про function.php

92
На сайте с 09.12.2011
Offline
21
635

Скажите, что какой код добавить в function.php чтобы в стандартных виджитах "новые статьи" и "новые комментарии" выводились миниатюры и аватары соответственно.

Эгоист
На сайте с 12.09.2011
Offline
71
#1

/* Функция для вывода последних комментариев в WordPress. Параметры:
$limit - сколко комментов выводить. По дефолту - 10
$ex - обрезка текста комментария до n символов. По дефолту - 45
$cat - Включить(5,12,35) или исключить(-5,-12,-35) категории, указываются id категорий через запятую. По дефолту - пусто - из всех категорий.
$echo - выводить на экран (1) или возвращать (0). По дефолту - 1
$gravatar - показывать иконку gravatar, указывается размер иконки, например, 20 - выведет иконку шириной и высотой в 20px
===================================================================================== */
function recent_comments($limit=10, $ex=45, $cat=0, $echo=1, $gravatar=''){
global $wpdb;
if($cat){
$IN = (strpos($cat,'-')===false)?"IN ($cat)":"NOT IN (".str_replace('-','',$cat).")";
$join = "LEFT JOIN $wpdb->term_relationships rel ON (p.ID = rel.object_id)
LEFT JOIN $wpdb->term_taxonomy tax ON (rel.term_taxonomy_id = tax.term_taxonomy_id)";
$and = "AND tax.taxonomy = 'category'
AND tax.term_id $IN";
}
$sql = "SELECT comment_ID, comment_post_ID, comment_content, post_title, guid, comment_author, comment_author_email
FROM $wpdb->comments com
LEFT JOIN $wpdb->posts p ON (com.comment_post_ID = p.ID) {$join}
WHERE comment_approved = '1'
AND comment_type = '' {$and}
ORDER BY comment_date DESC
LIMIT $limit";

$results = $wpdb->get_results($sql);

$out = '';
foreach ($results as $comment){
if($gravatar)
$grava = '<img src="http://www.gravatar.com/avatar/'. md5($comment->comment_author_email) .'?s=$gravatar&default=" alt="" width="'. $gravatar .'" height="'. $gravatar.'" />';
$comtext = strip_tags($comment->comment_content);
$leight = (int) iconv_strlen( $comtext, 'utf-8' );
if($leight > $ex) $comtext = iconv_substr($comtext,0,$ex, 'UTF-8').' …';
$out .= "\n<li>$grava<b>".strip_tags($comment->comment_author). ": </b><a href='". get_comment_link($comment->comment_ID) ."' title='к записи: {$comment->post_title}'>{$comtext}</a></li>";
}

if ($echo) echo $out;
else return $out;
}
<ul>
<?php recent_comments(10, 40); ?>
</ul>
92
На сайте с 09.12.2011
Offline
21
#2

как сделать чтобы <?php recent_comments(10, 40); ?> в виджите выполнялось?

---------- Добавлено 07.09.2012 в 06:32 ----------

Вот нашел. Скажите это безопасно?

function php_widget_text($intext)

{

if (strpos($intext, ‘ {

ob_start();

eval(‘?’ . ‘>’ . $intext);

$intext = ob_get_contents();

ob_end_clean();

}

return $intext;

}

add_filter(‘widget_text’, ‘php_widget_text’, 99);

IL
На сайте с 20.04.2007
Offline
435
#3
9dec2011:
Вот нашел. Скажите это безопасно?

это ошибку должно выдать

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )

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