* @license MIT License * @version 2020.09.27 */ // 添加小工具 function widgets_init() { register_sidebar(array( 'name' => __('侧边栏工具', 'kratos'), 'id' => 'sidebar_tool', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '
', 'after_title' => '
', )); // 去掉默认小工具 $wp_widget = array( 'WP_Widget_Pages', 'WP_Widget_Meta', 'WP_Widget_Recent_Posts', 'WP_Widget_Recent_Comments', 'WP_Widget_RSS', 'WP_Widget_Search', 'WP_Widget_Tag_Cloud', 'WP_Nav_Menu_Widget', ); foreach ($wp_widget as $wp_widget) { unregister_widget($wp_widget); } } add_action('widgets_init', 'widgets_init'); // 小工具文章聚合 - 热点文章 function most_comm_posts($days = 30, $nums = 6) { global $wpdb; date_default_timezone_set("PRC"); $today = date("Y-m-d H:i:s"); $daysago = date("Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60)); $result = $wpdb->get_results("SELECT comment_count, ID, post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' and post_type='post' and post_status='publish' ORDER BY comment_count DESC LIMIT 0 , $nums"); $output = ''; if (!empty($result)) { foreach ($result as $topten) { $postid = $topten->ID; $title = $topten->post_title; $commentcount = $topten->comment_count; if ($commentcount >= 0) { $output .= ''; $output .= strip_tags($title); $output .= ''; } } } echo $output; } class widget_search extends WP_Widget { public function __construct() { $widget_ops = array( 'classname' => 'widget_search', 'description' => __( 'A search form for your site.' ), 'customize_selective_refresh' => true, ); parent::__construct( 'search', _x( 'Search', 'Search widget' ), $widget_ops ); } public function widget( $args, $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : ''; $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); echo ''; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = $instance['title']; ?>

'' ) ); $instance['title'] = sanitize_text_field( $new_instance['title'] ); return $instance; } } class widget_ad extends WP_Widget { public function __construct() { add_action('admin_enqueue_scripts', array($this, 'scripts')); $widget_ops = array( 'name' => __('图片广告', 'kratos'), 'description' => __('显示自定义图片广告的工具', 'kratos'), ); parent::__construct(false, false, $widget_ops); } public function scripts() { wp_enqueue_script('media-upload'); wp_enqueue_media(); wp_enqueue_script('widget_scripts', ASSET_PATH . '/assets/js/widget.min.js', array('jquery')); wp_enqueue_style('widget_css', ASSET_PATH . '/assets/css/widget.min.css', array()); } public function widget($args, $instance) { $subtitle = !empty($instance['subtitle']) ? $instance['subtitle'] : __('广告', 'kratos'); $image = !empty($instance['image']) ? $instance['image'] : ''; $url = !empty($instance['url']) ? $instance['url'] : ''; echo '
'; echo '
' . $subtitle . '
'; echo '
'; } public function update($new_instance, $old_instance) { $instance = array(); $instance['subtitle'] = (!empty($new_instance['subtitle'])) ? $new_instance['subtitle'] : ''; $instance['image'] = (!empty($new_instance['image'])) ? $new_instance['image'] : ''; $instance['url'] = (!empty($new_instance['url'])) ? $new_instance['url'] : ''; return $instance; } public function form($instance) { $subtitle = !empty($instance['subtitle']) ? $instance['subtitle'] : __('广告', 'kratos'); $image = !empty($instance['image']) ? $instance['image'] : ''; $url = !empty($instance['url']) ? $instance['url'] : ''; ?>

__('个人简介', 'kratos'), 'description' => __('站长个人简介的展示工具', 'kratos'), ); parent::__construct(false, false, $widget_ops); } public function scripts() { wp_enqueue_script('media-upload'); wp_enqueue_media(); wp_enqueue_script('widget_scripts', ASSET_PATH . '/assets/js/widget.min.js', array('jquery')); wp_enqueue_style('widget_css', ASSET_PATH . '/assets/css/widget.min.css', array()); } public function widget($args, $instance) { $introduce = kratos_option('a_about', __('保持饥渴的专注,追求最佳的品质', 'kratos')); $username = kratos_option('a_nickname', __('Kratos', 'kratos')); $avatar = kratos_option('a_gravatar', ASSET_PATH . '/assets/img/gravatar.png'); $background = !empty($instance['background']) ? $instance['background'] : ASSET_PATH . '/assets/img/about-background.png'; echo '
'; echo '
'; if (kratos_option('g_login', true)) { if (current_user_can('manage_options')) { echo ''; } else { echo ''; } } echo ''; if (kratos_option('g_login', true)) { echo ''; } echo '

'. $username .'

' . $introduce . '

'; echo '
'; } public function update($new_instance, $old_instance) { $instance = array(); $instance['background'] = (!empty($new_instance['background'])) ? $new_instance['background'] : ''; return $instance; } public function form($instance) { $background = !empty($instance['background']) ? $instance['background'] : ASSET_PATH . '/assets/img/about-background.png'; ?>

__('标签聚合', 'kratos'), 'description' => __('文章标签的展示工具', 'kratos'), ); parent::__construct(false, false, $widget_ops); } public function widget($args, $instance) { $number = !empty($instance['number']) ? $instance['number'] : '8'; $order = !empty($instance['order']) ? $instance['order'] : 'RAND'; $tags = wp_tag_cloud(array( 'unit' => 'px', 'smallest' => 14, 'largest' => 14, 'number' => $number, 'format' => 'flat', 'orderby' => 'count', 'order' => $order, 'echo' => false, ) ); echo '
'; echo '
' . __('标签聚合', 'kratos') . '
'; echo '
' . $tags . '
'; echo '
'; } public function update($new_instance, $old_instance) { $instance = array(); $instance['number'] = (!empty($new_instance['number'])) ? $new_instance['number'] : ''; $instance['order'] = (!empty($new_instance['order'])) ? $new_instance['order'] : ''; return $instance; } public function form($instance) { global $wpdb; $number = !empty($instance['number']) ? $instance['number'] : '8'; $order = !empty($instance['order']) ? $instance['order'] : 'RAND'; ?>

__('文章聚合', 'kratos'), 'description' => __('展示最热、随机、最新文章的工具', 'kratos'), ); parent::__construct(false, false, $widget_ops); } public function widget($args, $instance) { $number = !empty($instance['number']) ? $instance['number'] : '6'; $days = !empty($instance['days']) ? $instance['days'] : '30'; echo '