11ответ(ов) в теме
в этом шаблоне шел свой виджет для вывода комментариев, я его немного поправил. Если интересно вот код:
<?php $comments_defaults = array( 'title' => 'Recent Comments', 'comments_number' => '5', 'display_author' => 'true', 'display_comment' => 'true', 'display_avatar' => 'true', 'read_more_text' => '»', 'comment_length' => '50', 'avatar_size' => '32', 'avatar_align' => 'alignleft' ); class Comments extends WP_Widget { function __construct() { $widget_options = array('description' => 'Advanced widget for displaying the recent posts with avatars' ); $control_options = array( 'width' => 400); $this->WP_Widget('comments', '» Comments with Avatars', $widget_options, $control_options); } function widget($args, $instance){ global $wpdb; $title = apply_filters('widget_title', $instance['title']); $comments_number = $instance['comments_number']; $query = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_author_email, comment_date_gmt, comment_approved, comment_type, user_id, SUBSTRING(comment_content,1,200) 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 ".$comments_number; $comments = $wpdb->get_results($query); ?> <?php echo $args['before_widget']?> <?php if ( $title ) { ?><?php echo $args['before_title']?><?php echo $title?><?php echo $args['after_title']?><?php } ?> <ul> <?php foreach ($comments as $comment) { $com_link = get_permalink($comment->ID) . "#comment-" . $comment->comment_ID; ?> <li> <?php $permalink = get_permalink($comment->ID) . "#comment-" . $comment->comment_ID; if( $instance['display_avatar']) { ?> <div class='avatar' style='width:<?php echo $instance['avatar_size']?>px'><?php echo get_avatar( $comment->user_id, $instance['avatar_size'] )?></div><?php } if($instance['display_comment'] || $instance['display_read_more'] || $instance['display_avatar']) { ?> <?php if($instance['display_comment']) { $get_the_comment_length = $instance['comment_length'] ? $instance['comment_length'] : 16; if(( iconv_strlen($txt=strip_tags($comment->com_excerpt), 'utf-8') > $get_the_comment_length )) { $txt=iconv_substr($txt, 0, $get_the_comment_length, 'utf-8'); $txt = preg_replace('@(.*)s[^s]*$@s', '\1', $txt); } echo "<span class='comment'>".$txt."...</span>"; } ?> <?php if($instance['display_author']) { echo "— <strong>".$comment->comment_author.":</strong>"; }?> <a href='<?php echo $com_link; ?>'><?php echo $instance['read_more_text']; ?></a><?php } else { ?><a href='<?php echo $com_link; ?>'><?php echo $instance['read_more_text']; ?></a><?php } ?> </li> <?php } ?> </ul> <?php echo $args['after_widget']?> <?php } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['comments_number'] = strip_tags($new_instance['comments_number']); $instance['display_author'] = strip_tags($new_instance['display_author']); $instance['display_comment'] = strip_tags($new_instance['display_comment']); $instance['display_avatar'] = strip_tags($new_instance['display_avatar']); $instance['read_more_text'] = strip_tags($new_instance['read_more_text']); $instance['comment_length'] = strip_tags($new_instance['comment_length']); $instance['avatar_size'] = strip_tags($new_instance['avatar_size']); $instance['avatar_align'] = strip_tags($new_instance['avatar_align']); return $instance; } function form($instance){ global $comments_defaults; $instance = wp_parse_args( (array) $instance, $comments_defaults ); ?> <div class="tt-widget"> <table width="100%"> <tr> <td class="tt-widget-label" width="40%"><label for="<?php echo $this->get_field_id('title')?>">Title:</label></td> <td class="tt-widget-content" width="60%"><input class="widefat" id="<?php echo $this->get_field_id('title')?>" name="<?php echo $this->get_field_name('title')?>" type="text" value="<?php echo esc_attr($instance['title'])?>" /></td> </tr> <tr> <td class="tt-widget-label"><label for="<?php echo $this->get_field_id('comments_number')?>">Number of comments:</label></td> <td class="tt-widget-content"><input class="widefat" id="<?php echo $this->get_field_id('comments_number')?>" name="<?php echo $this->get_field_name('comments_number')?>" type="text" value="<?php echo esc_attr($instance['comments_number'])?>" /></td> </tr> <tr> <td class="tt-widget-label"><label for="<?php echo $this->get_field_id('comment_length')?>">The comment length:</label></td> <td class="tt-widget-content"> <input class="widefat" id="<?php echo $this->get_field_id('comment_length')?>" name="<?php echo $this->get_field_name('comment_length') ?>" type="text" value="<?php echo esc_attr($instance['comment_length']) ?>" /> <br /><span class="tt-widget-help">Number of words</span> </td> </tr> <tr> <td class="tt-widget-label"><label for="<?php echo $this->get_field_id('read_more_text')?>">"Read more" text:</label></td> <td class="tt-widget-content"><input class="widefat" id="<?php echo $this->get_field_id('read_more_text')?>" name="<?php echo $this->get_field_name('read_more_text')?>" type="text" value="<?php echo esc_attr($instance['read_more_text'])?>" /></td> </tr> <tr> <td class="tt-widget-label">Display elements:</td> <td class="tt-widget-content"> <input type="checkbox" name="<?php echo $this->get_field_name('display_author')?>" <?php checked('true', $instance['display_author']); ?> value="true" /> Author <br /><input type="checkbox" name="<?php echo $this->get_field_name('display_comment')?>" <?php checked('true', $instance['display_comment']); ?> value="true" /> The comment <br /><input type="checkbox" name="<?php echo $this->get_field_name('display_avatar')?>" <?php checked('true', $instance['display_avatar']); ?> value="true" /> Avatar </td> </tr> <tr> <td class="tt-widget-label">Avatar:</td> <td class="tt-widget-content"> Size: <input type="text" style="width: 40px;" name="<?php echo $this->get_field_name('avatar_size')?>" value="<?php echo esc_attr($instance['avatar_size'])?>" /> Align: <select name="<?php echo $this->get_field_name('avatar_align')?>"> <option value="alignleft" <?php selected('alignleft', $instance['avatar_align']); ?> >Left</option> <option value="alignright" <?php selected('alignright', $instance['avatar_align']); ?>>Right</option> <option value="aligncenter" <?php selected('aligncenter', $instance['avatar_align']); ?>>Center</option> </select> </td> </tr> </table> </div> <?php } } add_action('widgets_init', create_function('', 'return register_widget("Comments");')); ?>
Возможно, что придется что то поправить чтобы заработал, а может и нет)
Тема закрыта. Публикация новых сообщений запрещена.