自己平时会经常修改主题,
偶尔会遇到需要添加 最近评论侧边栏
自己修改过wp自带的评论侧边栏,但是换主题后就要重新做
突然发现大发写过这个,特此记录
以下代码转自大发
class bigfa_widget3 extends WP_Widget {
function bigfa_widget3() {
$widget_ops = array('description' => '支持评论表情');
$this->WP_Widget('bigfa_widget3', 'P-主题最新评论', $widget_ops);
}
function widget($args, $instance) {
extract($args);
$title = apply_filters('widget_title',esc_attr($instance['title']));
$limit = strip_tags($instance['limit']);
$email = strip_tags($instance['email']);
echo $before_widget.$before_title.$title.$after_title;
?>
<ul class="recentcomments">
<?php
global $wpdb;
$limit_num = $limit ;
$my_email ="'" . $email . "'";
$rc_comms = $wpdb->get_results("SELECT ID, post_title, comment_ID, comment_author,comment_author_email,comment_date,comment_content 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 = '' AND comment_author_email != $my_email ORDER BY comment_date_gmt DESC LIMIT $limit_num ");
$rc_comments = '';foreach ($rc_comms as $rc_comm) { $rc_comments .= "<li>" . get_avatar($rc_comm,$size='30') ."<div class='rc-info'><span class='rc-reviewer'>".$rc_comm->comment_author."</span>在<a class='rc-post' href='". get_permalink($rc_comm->ID) . "#comment-" . $rc_comm->comment_ID. "'>" . $rc_comm->post_title . "</a></div><div class='rc_excerpt'>".$rc_comm->comment_content."</div></li>\n";}
$rc_comments = convert_smilies($rc_comments);
echo $rc_comments;
?>
</ul>
<?php
echo $after_widget;
}
function update($new_instance, $old_instance) {
if (!isset($new_instance['submit'])) {
return false;
}
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['limit'] = strip_tags($new_instance['limit']);
$instance['email'] = strip_tags($new_instance['email']);
return $instance;
}
function form($instance) {
global $wpdb;
$instance = wp_parse_args((array) $instance, array('title'=> '', 'limit' => '', 'email' => ''));
$title = esc_attr($instance['title']);
$limit = strip_tags($instance['limit']);
$email = strip_tags($instance['email']);
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>">标题:<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></label>
</p>
<p>
<label for="<?php echo $this->get_field_id('limit'); ?>">显示数量:(最好5个以下) <input class="widefat" id="<?php echo $this->get_field_id('limit'); ?>" name="<?php echo $this->get_field_name('limit'); ?>" type="text" value="<?php echo $limit; ?>" /></label>
</p>
<p>
<label for="<?php echo $this->get_field_id('email'); ?>">输入你的邮箱以排除显示你的回复: <br>(留空则不排除)<input class="widefat" id="<?php echo $this->get_field_id('email'); ?>" name="<?php echo $this->get_field_name('email'); ?>" type="text" value="<?php echo $email; ?>" /></label>
</p>
<input type="hidden" id="<?php echo $this->get_field_id('submit'); ?>" name="<?php echo $this->get_field_name('submit'); ?>" value="1" />
<?php
}
}
add_action('widgets_init', 'bigfa_widget3_init');
function bigfa_widget3_init() {
register_widget('bigfa_widget3');
}