玩wordpress也有一年多了,虽然代码写的不多。不过接触多了还是学到不少东西。这次发现站点的近期文章栏目比较鸡肋,因为我的站点现在以CMS形式展现,基本上近期发现的文章在首页都能看到。所以研究了一下小工具,花了几十分钟,写好了插件!下面源码放上来。
//热门文章
//热门文章
class HotPostsWidget extends WP_Widget{
public function __construct() {
// 构造方法
parent::__construct(
'hot_widget', // ID
'[FO]热门文章', // 名称
array( 'description' => __( '显示你博客最热门的文章', '显示你博客最热门的文章' ), ) // Args
);
}
public function widget( $args, $instance ) {
// 用户浏览界面
extract($args);
$title = apply_filters('widget_title', empty($instance['title']) ? __('热门文章') : $instance['title']);//小工具前台标题
echo $before_widget; //id开始框
if( $title ) echo $before_title . $title . $after_title; //标题
$showPosts = empty($instance['showPosts']) ? 10 : $instance['showPosts'];
$sticky=get_option('sticky_posts');
$query = new WP_Query(array(
'orderby' => 'comment_count',
'posts_per_page' => $showPosts,
'post__not_in' => $sticky
));
if($query->have_posts()){
$index = 1;
echo '
';
while($query->have_posts()){
$query->the_post();
$span = ''.$index.'';
echo '- '.$span.''.get_the_title().'
';
++$index;
}
echo '
';
}
echo $after_widget;
}
public function form( $instance ) {
// 管理员设置界面
$title = htmlspecialchars($instance['title']);
echo '
';
$showPosts = empty($instance['showPosts']) ? 10 : $instance['showPosts'];
echo '
';
}
public function update( $new_instance, $old_instance ) {
// 设置更新的值
$instance = array();
$instance['title'] = strip_tags(stripslashes($new_instance['title']));
$instance['showPosts'] = strip_tags(stripslashes($new_instance['showPosts']));
return $instance;
}
}
最后在你的主题下面的functions.php中注册插件就好了,注册函数register_widget。
补充一点:热门文章已经屏蔽了置顶的文章,不然数量不对!本文链接:https://it72.com:4443/8694.htm