wordpress自定义热门文章小插件

Home / Article MrLee 2016-3-30 2659

玩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://www.it72.com/8694.htm

推荐阅读
最新回复 (0)
返回