* @license GPL-3.0 License * @version 2022.01.26 */ function h2title($atts, $content = null, $code = "") { $return = '

'; $return .= $content; $return .= '

'; return $return; } add_shortcode('h2title', 'h2title'); function success($atts, $content = null, $code = "") { $return = '
'; $return .= $content; $return .= '
'; return $return; } add_shortcode('success', 'success'); function info($atts, $content = null, $code = "") { $return = '
'; $return .= $content; $return .= '
'; return $return; } add_shortcode('info', 'info'); function warning($atts, $content = null, $code = "") { $return = '
'; $return .= $content; $return .= '
'; return $return; } add_shortcode('warning', 'warning'); function danger($atts, $content = null, $code = "") { $return = '
'; $return .= $content; $return .= '
'; return $return; } add_shortcode('danger', 'danger'); function wymusic($atts, $content = null, $code = "") { $return = '
'; return $return; } add_shortcode('music', 'wymusic'); function bdbtn($atts, $content = null, $code = "") { $return = '立即下载'; return $return; } add_shortcode('bdbtn', 'bdbtn'); function kbd($atts, $content = null, $code = "") { $return = ''; $return .= $content; $return .= ''; return $return; } add_shortcode('kbd', 'kbd'); function nrmark($atts, $content = null, $code = "") { $return = ''; $return .= $content; $return .= ''; return $return; } add_shortcode('mark', 'nrmark'); function striped($atts, $content = null, $code = "") { $return = '
'; $return .= $content; $return .= '%
'; return $return; } add_shortcode('striped', 'striped'); function successbox($atts, $content = null, $code = "") { extract(shortcode_atts(array("title" => __('标题内容', 'kratos')), $atts)); $return = '
'; $return .= $title; $return .= '

'; $return .= $content; $return .= '

'; return $return; } add_shortcode('successbox', 'successbox'); function infobox($atts, $content = null, $code = "") { extract(shortcode_atts(array("title" => __('标题内容', 'kratos')), $atts)); $return = '
'; $return .= $title; $return .= '

'; $return .= $content; $return .= '

'; return $return; } add_shortcode('infobox', 'infobox'); function warningbox($atts, $content = null, $code = "") { extract(shortcode_atts(array("title" => __('标题内容', 'kratos')), $atts)); $return = '
'; $return .= $title; $return .= '

'; $return .= $content; $return .= '

'; return $return; } add_shortcode('warningbox', 'warningbox'); function dangerbox($atts, $content = null, $code = "") { extract(shortcode_atts(array("title" => __('标题内容', 'kratos')), $atts)); $return = '
'; $return .= $title; $return .= '

'; $return .= $content; $return .= '

'; return $return; } add_shortcode('dangerbox', 'dangerbox'); function vqq($atts, $content = null, $code = "") { $return = '
'; return $return; } add_shortcode('vqq', 'vqq'); function youtube($atts, $content = null, $code = "") { $return = '
'; return $return; } add_shortcode('youtube', 'youtube'); function bilibili($atts, $content = null, $code = "") { $return = '
'; return $return; } add_shortcode('bilibili', 'bilibili'); function reply($atts, $content = null) { extract(shortcode_atts(array("notice" => ''), $atts)); $userEmail = null; $user_ID = (int) wp_get_current_user()->ID; if ($user_ID > 0) { $userEmail = get_userdata($user_ID)->user_email; $adminUsers = get_users('role=Administrator'); $adminEmails = array(); foreach ($adminUsers as $user) { $adminEmails[] = $user->user_email; } $authorEmail = get_the_author_meta('user_email'); array_push($adminEmails, $authorEmail); if (in_array($userEmail, $adminEmails)) { return $content; } } else { if (isset($_COOKIE['comment_author_email_' . COOKIEHASH])) { $userEmail = str_replace('%40', '@', $_COOKIE['comment_author_email_' . COOKIEHASH]); } else { return $notice; } } if (empty($userEmail)) { return $notice; } global $wpdb; $post_id = get_the_ID(); if ($wpdb->get_results($wpdb->prepare("SELECT comment_ID FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_approved = '1' AND comment_author_email = %s LIMIT 1", $post_id, $userEmail))) { return do_shortcode($content); } else { return $notice; } } add_shortcode('reply', 'reply'); function accordion($atts, $content = null, $code = "") { extract(shortcode_atts(array("title" => __('标题内容', 'kratos')), $atts)); $return = '
'; $return .= $title; $return .= '
'; $return .= do_shortcode($content); $return .= '
'; return $return; } add_shortcode('accordion', 'accordion'); function dplayer($atts = array(), $content = '') { static $instance = 0; $instance++; $atts = shortcode_atts( array( 'autoplay' => 'false', 'theme' => '#b7daff', 'loop' => 'false', 'preload' => 'auto', 'src' => '', 'poster' => '', 'type' => 'auto', 'mutex' => 'true', 'iconsColor' => '#ffffff' ), $atts, 'dplayer' ); $atts['autoplay'] = wp_validate_boolean($atts['autoplay']); $atts['theme'] = esc_attr($atts['theme']); $atts['loop'] = wp_validate_boolean($atts['loop']); $atts['preload'] = esc_attr($atts['preload']); $atts['src'] = esc_url_raw($atts['src']); $atts['poster'] = esc_url_raw($atts['poster']); $atts['type'] = strtolower(esc_attr($atts['type'])); $atts['mutex'] = wp_validate_boolean($atts['mutex']); $atts['iconsColor'] = esc_attr($atts['iconsColor']); if (empty($atts['src'])) return; $output = sprintf( '', $instance, $instance, $atts['autoplay'], $atts['theme'], $atts['loop'], $atts['preload'], $atts['src'], $atts['type'], $atts['poster'], $atts['mutex'], $atts['iconsColor'] ); $html = sprintf( '

', $instance ); add_action('wp_footer', function () use ($output) { echo ' ' . $output . "\n"; }, 99999); return $html; } add_shortcode('dplayer', 'dplayer'); function override_wp_video_shortcode($html = '', $atts = array()) { if (empty($atts['src'])) { if (!empty($atts['mp4'])) { $atts['src'] = $atts['mp4']; } elseif (!empty($atts['m4v'])) { $atts['src'] = $atts['m4v']; } elseif (!empty($atts['webm'])) { $atts['src'] = $atts['webm']; } elseif (!empty($atts['ogv'])) { $atts['src'] = $atts['ogv']; } elseif (!empty($atts['wmv'])) { $atts['src'] = $atts['wmv']; } elseif (!empty($atts['flv'])) { $atts['src'] = $atts['flv']; } }; $video_attr_strings = array(); foreach ($atts as $k => $v) { if ($v == '') continue; $video_attr_strings[] = $k . '="' . esc_attr($v) . '"'; } $html .= sprintf('[dplayer %s]', join(' ', $video_attr_strings)); return do_shortcode($html); } if (!is_admin()) { add_filter('wp_video_shortcode_override', 'override_wp_video_shortcode', 1, 2); } add_action('init', 'more_button'); function more_button() { if (!current_user_can('edit_posts') && !current_user_can('edit_pages')) { return; } if (get_user_option('rich_editing') == 'true') { add_filter('mce_external_plugins', 'add_plugin'); add_filter('mce_buttons', 'register_button'); } } function add_more_buttons($buttons) { $buttons[] = 'hr'; $buttons[] = 'wp_page'; $buttons[] = 'fontsizeselect'; $buttons[] = 'styleselect'; return $buttons; } add_filter("mce_buttons", "add_more_buttons"); function register_button($buttons) { array_push($buttons, " ", "h2title"); array_push($buttons, " ", "kbd"); array_push($buttons, " ", "mark"); array_push($buttons, " ", "striped"); array_push($buttons, " ", "bdbtn"); array_push($buttons, " ", "reply"); array_push($buttons, " ", "accordion"); array_push($buttons, " ", "dplayer"); array_push($buttons, " ", "music"); array_push($buttons, " ", "vqq"); array_push($buttons, " ", "youtube"); array_push($buttons, " ", "bilibili"); array_push($buttons, " ", "success"); array_push($buttons, " ", "info"); array_push($buttons, " ", "warning"); array_push($buttons, " ", "danger"); array_push($buttons, " ", "successbox"); array_push($buttons, " ", "infoboxs"); array_push($buttons, " ", "warningbox"); array_push($buttons, " ", "dangerbox"); return $buttons; } function add_plugin($plugin_array) { $plugin_array['h2title'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['kbd'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['mark'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['striped'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['bdbtn'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['reply'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['accordion'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['music'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['vqq'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['youtube'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['bilibili'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['success'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['info'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['warning'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['danger'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['successbox'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['infoboxs'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['warningbox'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['dangerbox'] = ASSET_PATH . '/assets/js/buttons/more.js'; return $plugin_array; }