Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.29 KB | None | 0 0
  1. <?php
  2. //Init theme
  3. add_action('load-themes.php','Init_theme');
  4. function Init_theme(){
  5. global $pagenow;
  6. if('themes.php'==$pagenow&&isset($_GET['activated'])){
  7. wp_redirect(admin_url('themes.php?page=kratos'));
  8. exit;
  9. }
  10. }
  11. //The admin control module
  12. if(!function_exists('optionsframework_init')){
  13. define('OPTIONS_FRAMEWORK_DIRECTORY',get_template_directory_uri().'/inc/theme-options/');
  14. require_once (get_template_directory().'/inc/theme-options/options-framework.php');
  15. $optionsfile = locate_template('options.php');
  16. load_template($optionsfile);
  17. }
  18. function kratos_options_menu_filter($menu){
  19. $menu['mode'] = 'menu';
  20. $menu['page_title'] = __('主题设置','moedog');
  21. $menu['menu_title'] = __('主题设置','moedog');
  22. $menu['menu_slug'] = 'kratos';
  23. return $menu;
  24. }
  25. add_filter('optionsframework_menu','kratos_options_menu_filter');
  26. //The menu navigation registration
  27. function kratos_register_nav_menu(){register_nav_menus(array('header_menu'=>__('顶部菜单','moedog')));}
  28. add_action('after_setup_theme','kratos_register_nav_menu');
  29. //Highlighting the active menu
  30. function kratos_active_menu_class($classes){
  31. if(in_array('current-menu-item',$classes) OR in_array('current-menu-ancestor',$classes)) $classes[] = 'active';
  32. return $classes;
  33. }
  34. add_filter('nav_menu_css_class','kratos_active_menu_class');
  35. //Disable automatic formatting
  36. remove_filter('the_content','wpautop');
  37. remove_filter('the_content','wptexturize');
  38. //Support chinese tags
  39. add_action('parse_request','kratos_chinese_tag_names_parse_request');
  40. add_filter('get_pagenum_link','kratos_chinese_tag_names_get_pagenum_link');
  41. function kratos_chinese_convencoding($str,$to='UTF-8',$from='GBK'){
  42. if(function_exists('mb_convert_encoding')){
  43. $str = mb_convert_encoding($str,$to,$from);
  44. }else if(function_exists('iconv')){
  45. $str = iconv($from,$to."//IGNORE",$str);
  46. }
  47. return $str;
  48. }
  49. function kratos_chinese_tag_names_parse_request($obj){
  50. if($obj->did_permalink==false) return;
  51. if(isset($obj->request)) $obj->request = kratos_chinese_convencoding($obj->request,get_option('blog_charset'));
  52. if(isset($obj->query_vars)) foreach ($obj->query_vars as $key => &$value){
  53. if($key=='s') continue;
  54. $value = kratos_chinese_convencoding($value,get_option('blog_charset'));
  55. }
  56. }
  57. function kratos_chinese_tag_names_get_pagenum_link($result){
  58. $result = kratos_chinese_convencoding($result,get_option('blog_charset'));
  59. return $result;
  60. }
  61. //Disable google fonts
  62. function kratos_disable_open_sans($translations,$text,$context,$domain){
  63. if('Open Sans font: on or off'==$context&&'on'==$text) $translations = 'off';
  64. return $translations;
  65. }
  66. add_filter('gettext_with_context','kratos_disable_open_sans',888,4);
  67. //Support webp upload
  68. add_filter('upload_mimes','kratos_upload_webp');
  69. function kratos_upload_webp ($existing_mimes=array()){
  70. $existing_mimes['webp']='image/webp';
  71. return $existing_mimes;
  72. }
  73. //The length and suffix
  74. function kratos_excerpt_length($length){return 170;}
  75. add_filter('excerpt_length','kratos_excerpt_length');
  76. function kratos_excerpt_more($more){return '……';}
  77. add_filter('excerpt_more','kratos_excerpt_more');
  78. //Load scripts
  79. function kratos_theme_scripts(){
  80. $url1 = 'https://cdn.jsdelivr.net/gh/xb2016/kratos-pjax@'.KRATOS_VERSION;
  81. $url2 = get_bloginfo('template_directory');
  82. $childDir = get_stylesheet_directory_uri();
  83. if(kratos_option('js_out')) $jsdir = $url1; else $jsdir = $childDir;
  84. if(kratos_option('css_out')) $cssdir = $url1; else $cssdir = $childDir;
  85. if(kratos_option('owo_out')) $owodir = $url1; else $owodir = $childDir;
  86. if(kratos_option('fa_url')) $fadir = kratos_option('fa_url'); else $fadir = $url2.'/static/css/font-awesome.min.css';
  87. if(kratos_option('jq_url')) $jqdir = kratos_option('jq_url'); else $jqdir = $url2.'/static/js/jquery.min.js';
  88. if(!is_admin()){
  89. wp_enqueue_style('fontawe',$fadir,array(),'4.7.0');
  90. wp_enqueue_style('kratos',$cssdir.'/static/css/kratos.min.css',array(),KRATOS_VERSION);
  91. wp_enqueue_script('theme-jq',$jqdir,array(),'2.1.4');
  92. wp_enqueue_script('theme',$jsdir.'/static/js/theme.min.js',array(),KRATOS_VERSION);
  93. wp_enqueue_script('kratos',$jsdir.'/static/js/kratos.js',array(),KRATOS_VERSION);
  94. if(kratos_option('page_pjax')) wp_enqueue_script('pjax',$jsdir.'/static/js/pjax.js',array(),KRATOS_VERSION);
  95. }
  96. if(kratos_option('site_girl')&&!wp_is_mobile()){
  97. wp_enqueue_script('live2d',$jsdir.'/static/js/live2d.js',array(),'l2d');
  98. wp_enqueue_script('waifu',$jsdir.'/static/js/waifu-tips.js',array(),'1.3');
  99. }
  100. if(kratos_option('site_sa')&&!wp_is_mobile()){if(kratos_option('head_mode')=='pic') $site_sa_h = 61; else $site_sa_h = 103;}
  101. $d2kratos = array(
  102. 'thome'=> get_stylesheet_directory_uri(),
  103. 'ctime'=> kratos_option('createtime'),
  104. 'alipay'=> kratos_option('alipayqr_url'),
  105. 'wechat'=> kratos_option('wechatpayqr_url'),
  106. 'copy'=> kratos_option('copy_notice'),
  107. 'ajax_url'=> admin_url('admin-ajax.php'),
  108. 'order'=> get_option('comment_order'),
  109. 'owo'=> $owodir,
  110. 'site_sh'=> $site_sa_h
  111. );
  112. wp_localize_script('kratos','xb',$d2kratos);
  113. }
  114. add_action('wp_enqueue_scripts','kratos_theme_scripts');
  115. //Remove code
  116. remove_action('wp_head','wp_print_head_scripts',9);
  117. remove_action('wp_head','wp_generator');
  118. remove_action('wp_head','rsd_link');
  119. remove_action('wp_head','wlwmanifest_link');
  120. remove_action('wp_head','index_rel_link');
  121. remove_action('wp_head','parent_post_rel_link',10,0);
  122. remove_action('wp_head','start_post_rel_link',10,0);
  123. remove_action('wp_head','adjacent_posts_rel_link_wp_head',10,0);
  124. remove_action('wp_head','rel_canonical');
  125. remove_action('wp_head','feed_links',2);
  126. remove_action('wp_head','feed_links_extra',3);
  127. remove_action('wp_head','rest_output_link_wp_head',10);
  128. remove_action('wp_head','wp_oembed_add_discovery_links',10);
  129. remove_action('admin_print_scripts','print_emoji_detection_script');
  130. remove_action('admin_print_styles','print_emoji_styles');
  131. remove_action('wp_head','print_emoji_detection_script',7);
  132. remove_action('wp_print_styles','print_emoji_styles');
  133. remove_action('embed_head','print_emoji_detection_script');
  134. remove_filter('the_content','wptexturize');
  135. remove_filter('the_content_feed','wp_staticize_emoji');
  136. remove_filter('comment_text_rss','wp_staticize_emoji');
  137. remove_filter('wp_mail','wp_staticize_emoji_for_email');
  138. add_filter('emoji_svg_url','__return_false');
  139. add_filter('show_admin_bar','__return_false');
  140. add_action('wp_enqueue_scripts','mt_enqueue_scripts',1);
  141. add_filter('rest_enabled','_return_false');
  142. add_filter('rest_jsonp_enabled','_return_false');
  143. function mt_enqueue_scripts(){wp_deregister_script('jquery');}
  144. function disable_embeds_init(){
  145. global $wp;
  146. $wp->public_query_vars = array_diff($wp->public_query_vars,array('embed'));
  147. remove_action('rest_api_init','wp_oembed_register_route');
  148. add_filter('embed_oembed_discover','__return_false');
  149. remove_filter('oembed_dataparse','wp_filter_oembed_result',10);
  150. remove_action('wp_head','wp_oembed_add_discovery_links');
  151. remove_action('wp_head','wp_oembed_add_host_js');
  152. add_filter('tiny_mce_plugins','disable_embeds_tiny_mce_plugin');
  153. add_filter('rewrite_rules_array','disable_embeds_rewrites');
  154. }
  155. add_action('init','disable_embeds_init',9999);
  156. function disable_embeds_tiny_mce_plugin($plugins){return array_diff($plugins,array('wpembed'));}
  157. function disable_embeds_rewrites($rules){
  158. foreach ($rules as $rule => $rewrite){
  159. if(false !== strpos($rewrite,'embed=true')) unset($rules[$rule]);
  160. }
  161. return $rules;
  162. }
  163. function disable_embeds_remove_rewrite_rules(){
  164. add_filter('rewrite_rules_array','disable_embeds_rewrites');
  165. flush_rewrite_rules();
  166. }
  167. register_activation_hook(__FILE__,'disable_embeds_remove_rewrite_rules');
  168. function disable_embeds_flush_rewrite_rules(){
  169. remove_filter('rewrite_rules_array','disable_embeds_rewrites');
  170. flush_rewrite_rules();
  171. }
  172. register_deactivation_hook(__FILE__,'disable_embeds_flush_rewrite_rules');
  173. if(!kratos_option('use_gutenberg')){
  174. add_filter('use_block_editor_for_post','__return_false');
  175. remove_action('wp_enqueue_scripts','wp_common_block_scripts_and_styles');
  176. }
  177. //Prohibit character escaping
  178. $qmr_work_tags = array('the_title','the_excerpt','single_post_title','comment_author','comment_text','link_description','bloginfo','wp_title','term_description','category_description','widget_title','widget_text');
  179. foreach($qmr_work_tags as $qmr_work_tag){remove_filter ($qmr_work_tag,'wptexturize');}
  180. remove_filter('the_content','wptexturize');
  181. //Add the page html
  182. add_action('init','html_page_permalink',-1);
  183. function html_page_permalink(){
  184. if(kratos_option('page_html')){
  185. global $wp_rewrite;
  186. if(!strpos($wp_rewrite->get_page_permastruct(),'.html')) $wp_rewrite->page_structure = $wp_rewrite->page_structure.'.html';
  187. }
  188. }
  189. //Remove the revision
  190. remove_action('post_updated','wp_save_post_revision');
  191. //Auto add <p>
  192. remove_filter('the_content','wpautop');
  193. add_filter('the_content','wpautop',12);
  194. //Link manager(Link page pre)
  195. add_filter('pre_option_link_manager_enabled','__return_true');
  196. //Remove the excess CSS selectors
  197. add_filter('nav_menu_css_class','my_css_attributes_filter',100,1);
  198. add_filter('nav_menu_item_id','my_css_attributes_filter',100,1);
  199. add_filter('page_css_class','my_css_attributes_filter',100,1);
  200. function my_css_attributes_filter($var){return is_array($var)?array_intersect($var,array('current-menu-item','current-post-ancestor','current-menu-ancestor','current-menu-parent')):'';}
  201. //Languages
  202. function kratos_theme_languages(){
  203. load_theme_textdomain('moedog',get_template_directory().'/languages');
  204. }
  205. add_action('after_setup_theme','kratos_theme_languages');
  206. //Add article type
  207. add_theme_support('post-formats',array('status'));
  208. //Keywords Description set
  209. function kratos_keywords(){
  210. if(is_home()||is_front_page()){echo kratos_option('site_keywords');}
  211. elseif(is_category()){single_cat_title();}
  212. elseif(is_single()){
  213. echo trim(wp_title('',FALSE)).',';
  214. if(has_tag()){foreach((get_the_tags()) as $tag){echo $tag->name.',';}}
  215. foreach((get_the_category()) as $category){echo $category->cat_name.',';}
  216. }
  217. elseif(is_search()){the_search_query();}
  218. else{echo trim(wp_title('',FALSE));}
  219. }
  220. function kratos_description(){
  221. if(is_home()||is_front_page()){echo trim(kratos_option('site_description'));}
  222. elseif(is_category()){$description = strip_tags(category_description());echo trim($description);}
  223. elseif(is_single()){
  224. if(get_the_excerpt()){echo get_the_excerpt();}
  225. else{global $post;$description = trim(str_replace(array("\r\n","\r","\n"," "," ")," ",str_replace("\"","'",strip_tags(do_shortcode($post->post_content)))));echo mb_substr($description,0,220,'utf-8');}
  226. }
  227. elseif(is_search()){echo '“';the_search_query();global $wp_query;echo '”'.sprintf(__('为您找到结果 %s 个','moedog'),$wp_query->found_posts);}
  228. elseif(is_tag()){$description = strip_tags(tag_description());echo trim($description);}
  229. else{$description = strip_tags(term_description());echo trim($description);}
  230. }
  231. //Article outside chain optimization
  232. function imgnofollow($content){
  233. $regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
  234. if(preg_match_all("/$regexp/siU",$content,$matches,PREG_SET_ORDER)){
  235. if(!empty($matches)){
  236. $srcUrl = get_option('siteurl');
  237. for ($i=0;$i<count($matches);$i++){
  238. $tag = $matches[$i][0];
  239. $tag2 = $matches[$i][0];
  240. $url = $matches[$i][0];
  241. $noFollow = '';
  242. $pattern = '/target\s*=\s*"\s*_blank\s*"/';
  243. preg_match($pattern,$tag2,$match,PREG_OFFSET_CAPTURE);
  244. if(count($match)<1) $noFollow .= ' target="_blank" ';
  245. $pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
  246. preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
  247. if(count($match)<1) $noFollow .= ' rel="nofollow" ';
  248. $pos = strpos($url,$srcUrl);
  249. if($pos===false){
  250. $tag = rtrim ($tag,'>');
  251. $tag .= $noFollow.'>';
  252. $content = str_replace($tag2,$tag,$content);
  253. }
  254. }
  255. }
  256. }
  257. $content = str_replace(']]>',']]>',$content);
  258. return $content;
  259. }
  260. add_filter('the_content','imgnofollow');
  261. //The title set
  262. function kratos_wp_title($title,$sep){
  263. global $paged,$page;
  264. if(is_feed()) return $title;
  265. $title .= get_bloginfo('name');
  266. $site_description = get_bloginfo('description','display');
  267. if($site_description&&(is_home()||is_front_page())) $title = "$title $sep $site_description";
  268. if($paged>=2||$page>=2) $title = "$title $sep " . sprintf('Page %s',max($paged,$page));
  269. return $title;
  270. }
  271. add_filter('wp_title','kratos_wp_title',10,2);
  272. //More...
  273. function my_more_link($more_link,$more_link_text){return str_replace($more_link_text,'(More...)',$more_link);}
  274. add_filter('the_content_more_link','my_more_link',10,2);
  275. function remove_more_jump_link($link){
  276. $offset = strpos($link,'#more-');
  277. if($offset) $end = strpos($link,'"',$offset);
  278. if($end) $link = substr_replace($link,'',$offset,$end-$offset);
  279. return $link;
  280. }
  281. add_filter('the_content_more_link','remove_more_jump_link');
  282. //More users' info
  283. function get_client_ip(){
  284. if(getenv("HTTP_CLIENT_IP")&&strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")) $ip = getenv("HTTP_CLIENT_IP");
  285. elseif(getenv("HTTP_X_FORWARDED_FOR")&&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR");
  286. elseif(getenv("REMOTE_ADDR")&&strcasecmp(getenv("REMOTE_ADDR"),"unknown")) $ip = getenv("REMOTE_ADDR");
  287. elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],"unknown")) $ip = $_SERVER['REMOTE_ADDR'];
  288. else $ip = "unknown";
  289. return ($ip);
  290. }
  291. add_action('wp_login','insert_last_login');
  292. function insert_last_login($login){
  293. global $user_id;
  294. $user = get_userdatabylogin($login);
  295. update_user_meta($user->ID,'last_login',current_time('mysql'));
  296. $last_login_ip = get_client_ip();
  297. update_user_meta($user->ID,'last_login_ip',$last_login_ip);
  298. }
  299. add_filter('manage_users_columns','add_user_additional_column');
  300. function add_user_additional_column($columns){
  301. $columns['user_nickname'] = __('昵称','moedog');
  302. $columns['user_url'] = __('网站','moedog');
  303. $columns['reg_time'] = __('注册时间','moedog');
  304. $columns['last_login'] = __('上次登录','moedog');
  305. $columns['last_login_ip'] = __('登录IP','moedog');
  306. unset($columns['name']);
  307. return $columns;
  308. }
  309. add_action('manage_users_custom_column','show_user_additional_column_content',10,3);
  310. function show_user_additional_column_content($value,$column_name,$user_id){
  311. $user = get_userdata($user_id);
  312. if('user_nickname'==$column_name) return $user->nickname;
  313. if('user_url'==$column_name) return '<a href="'.$user->user_url.'" target="_blank">'.$user->user_url.'</a>';
  314. if('reg_time'==$column_name) return get_date_from_gmt($user->user_registered);
  315. if('last_login'==$column_name&&$user->last_login) return get_user_meta($user->ID,'last_login',true);
  316. if('last_login_ip'==$column_name) return get_user_meta($user->ID,'last_login_ip',true);
  317. return $value;
  318. }
  319. add_filter("manage_users_sortable_columns",'cmhello_users_sortable_columns');
  320. function cmhello_users_sortable_columns($sortable_columns){
  321. $sortable_columns['reg_time'] = 'reg_time';
  322. return $sortable_columns;
  323. }
  324. add_action( 'pre_user_query','cmhello_users_search_order');
  325. function cmhello_users_search_order($obj){
  326. if(!isset($_REQUEST['orderby'])||$_REQUEST['orderby']=='reg_time'){
  327. if(!in_array($_REQUEST['order'],array('asc','desc'))) $_REQUEST['order'] = 'desc';
  328. $obj->query_orderby = "ORDER BY user_registered ".$_REQUEST['order']."";
  329. }
  330. }
  331. //Enable comments <img>
  332. function sig_allowed_html_tags_in_comments(){
  333. define('CUSTOM_TAGS',true);
  334. global $allowedtags;
  335. $allowedtags = array(
  336. 'img'=> array(
  337. 'alt' => true,
  338. 'class' => true,
  339. 'height'=> true,
  340. 'src' => true,
  341. 'width' => true,
  342. ),
  343. );
  344. }
  345. add_action('init','sig_allowed_html_tags_in_comments',10);
  346. //Comment ajax
  347. function kratos_comment_err($a){
  348. header('HTTP/1.0 500 Internal Server Error');
  349. header('Content-Type: text/plain;charset=UTF-8');
  350. echo $a;
  351. exit;
  352. }
  353. function spam_protection($commentdata){
  354. if($_POST['co_num1']+$_POST['co_num2']!=$_POST['code']) kratos_comment_err(__('验证码错误','moedog'));
  355. return $commentdata;
  356. }
  357. if($comment_data['comment_type']==''){
  358. add_filter('preprocess_comment','spam_protection');
  359. }
  360. function kratos_comment_callback(){
  361. $comment = wp_handle_comment_submission(wp_unslash($_POST));
  362. if(is_wp_error($comment)){
  363. $data = $comment->get_error_data();
  364. if(!empty($data)){
  365. kratos_comment_err($comment->get_error_message());
  366. }else{
  367. exit;
  368. }
  369. }
  370. $user = wp_get_current_user();
  371. do_action('set_comment_cookies',$comment,$user);
  372. $GLOBALS['comment'] = $comment; ?>
  373. <li <?php comment_class(); ?>>
  374. <div id="div-comment-<?php comment_ID(); ?>" class="comment-body">
  375. <div class="comment-author vcard">
  376. <?php echo get_avatar($comment,$size='50')?>
  377. <cite class="fn">
  378. <?php echo get_comment_author_link();?>
  379. </cite>
  380. </div>
  381. <?php if('0'==$comment->comment_approved): ?>
  382. <em class="comment-awaiting-moderation"><?php _e('您的评论正在等待审核。','moedog') ?></em>
  383. <br />
  384. <?php endif; ?>
  385. <div class="comment-meta commentmetadata">
  386. <?php echo get_comment_date();echo get_comment_date(' H:i'); ?>
  387. </div>
  388. <?php comment_text(); ?>
  389. </div>
  390. </li>
  391. <?php die();
  392. }
  393. add_action('wp_ajax_nopriv_ajax_comment','kratos_comment_callback');
  394. add_action('wp_ajax_ajax_comment','kratos_comment_callback');
  395. //Sitemap - https://mkblog.cn
  396. function kratos_get_xml_sitemap(){
  397. ob_start();
  398. echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
  399. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">
  400. <!-- generated-on=<?php echo get_lastpostdate('blog'); ?> -->
  401. <url>
  402. <loc><?php echo get_home_url(); ?></loc>
  403. <lastmod><?php echo gmdate('Y-m-d\TH:i:s+00:00',strtotime(get_lastpostmodified('GMT'))); ?></lastmod>
  404. <changefreq>daily</changefreq>
  405. <priority>1.0</priority>
  406. </url><?php
  407. $posts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
  408. foreach($posts as $post): ?>
  409. <url>
  410. <loc><?php echo get_permalink($post->ID); ?></loc>
  411. <lastmod><?php echo str_replace(" ","T",get_post($post->ID)->post_modified); ?>+00:00</lastmod>
  412. <changefreq>monthly</changefreq>
  413. <priority>0.6</priority>
  414. </url><?php
  415. endforeach;
  416. $pages = get_pages('numberposts=-1&orderby=post_date&order=DESC');
  417. foreach($pages as $page): ?>
  418. <url>
  419. <loc><?php echo get_page_link($page->ID); ?></loc>
  420. <lastmod><?php echo str_replace(" ","T",get_page($page->ID)->post_modified); ?>+00:00</lastmod>
  421. <changefreq>weekly</changefreq>
  422. <priority>0.6</priority>
  423. </url><?php
  424. endforeach;
  425. $categorys = get_terms('category','orderby=name&hide_empty=0');
  426. foreach($categorys as $category): ?>
  427. <url>
  428. <loc><?php echo get_term_link($category,$category->slug); ?></loc>
  429. <changefreq>weekly</changefreq>
  430. <priority>0.8</priority>
  431. </url><?php
  432. endforeach;
  433. $tags = get_terms('post_tag','orderby=name&hide_empty=0');
  434. foreach ($tags as $tag) :
  435. ?>
  436. <url>
  437. <loc><?php echo get_term_link($tag, $tag->slug); ?></loc>
  438. <changefreq>monthly</changefreq>
  439. <priority>0.4</priority>
  440. </url>
  441. <?php endforeach; ?>
  442. </urlset><?php
  443. $sitemap = ob_get_contents();
  444. ob_clean();
  445. return $sitemap;
  446. }
  447. function kratos_get_html_sitemap(){
  448. ob_start(); ?>
  449. <!DOCTYPE html>
  450. <html xmlns="http://www.w3.org/1999/xhtml">
  451. <head>
  452. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  453. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  454. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
  455. <meta name="author" content="mengkun">
  456. <meta name="generator" content="KodCloud">
  457. <meta name="renderer" content="webkit">
  458. <meta http-equiv="Cache-Control" content="no-siteapp">
  459. <meta name="description" content="<?php bloginfo('name'); ?>站点地图">
  460. <meta name="keywords" content="<?php bloginfo('name'); ?>,站点地图,sitemap">
  461. <title><?php bloginfo('name'); ?> | <?php _e('站点地图','moedog'); ?></title>
  462. <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
  463. <link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
  464. <style>
  465. *{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:Microsoft Yahei,"微软雅黑","Helvetica Neue",Helvetica,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}
  466. html,body{width:100%;height:100%}
  467. a{text-decoration:none;color:#333;-webkit-transition:.3s ease all;-moz-transition:.3s ease all;-o-transition:.3s ease all;transition:.3s ease all}
  468. a:focus{outline:none}
  469. .sitemap-lists a{padding:8px 5px;border-radius:5px}
  470. .sitemap-lists a:hover{background:#eee}
  471. img{border:none}
  472. li{list-style:none}
  473. .clear-fix{zoom:1}
  474. .clear-fix:before,.clear-fix:after{display:table;line-height:0;content:""}
  475. .clear-fix:after{clear:both}
  476. .hidden{display:none}
  477. .container{max-width:900px;margin:0 auto;position:relative;padding:5px}
  478. .page-title{font-weight:600;font-size:30px;text-align:center;padding:40px;position:relative}
  479. .page-title:after{content:"";border-bottom:3px #bdbdbd solid;position:absolute;left:50%;top:50%;padding-top:60px;transform:translate(-50%,-50%);width:60px;z-index:-1}
  480. .page-title:hover>a{color:#848484}
  481. .section-title{font-weight:500;font-size:16px;position:relative;margin:15px 0 10px;color:#fff;background:#565555;display:inline-block;padding:5px 8px;border-radius:5px}
  482. .post-lists li{padding:4px 0}
  483. .post-lists li>a{display:block}
  484. .category-lists li>a,.tag-lists li>a{display:inline-block;float:left;margin-right:4px;margin-bottom:4px}
  485. .page-footer{text-align:center;padding:10px;font-size:14px;color:#c7c7c7}
  486. </style>
  487. </head>
  488. <body>
  489. <div class="container">
  490. <h1 class="page-title"><a href="<?php echo get_option('home').'/sitemap.xml'; ?>" target="_blank">Sitemap</a></h1><?php
  491. $posts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
  492. if(count($posts)): ?>
  493. <h2 class="section-title">文章 / Article</h2>
  494. <ul class="sitemap-lists post-lists clear-fix">
  495. <?php foreach($posts as $post) :
  496. $title = $post->post_title;
  497. $title = htmlspecialchars_decode($title,ENT_QUOTES); ?>
  498. <li><a href="<?php echo get_permalink($post->ID); ?>" title="<?php echo $title; ?>" target="_blank"><?php echo $title; ?></a></li>
  499. <?php endforeach; ?>
  500. </ul><?php
  501. endif;
  502. $pages = get_pages('numberposts=-1&orderby=post_date&order=DESC');
  503. if(count($pages)): ?>
  504. <h2 class="section-title">页面 / Page</h2>
  505. <ul class="sitemap-lists post-lists clear-fix">
  506. <?php foreach($pages as $page) :
  507. $title = $page->post_title;
  508. $title = htmlspecialchars_decode($title,ENT_QUOTES); ?>
  509. <li><a href="<?php echo get_page_link($page->ID); ?>" title="<?php echo $title; ?>" target="_blank"><?php echo $title; ?></a></li>
  510. <?php endforeach; ?>
  511. </ul><?php
  512. endif;
  513. $categorys = get_terms('category','orderby=name&hide_empty=0');
  514. if(count($categorys)): ?>
  515. <h2 class="section-title">分类 / Category</h2>
  516. <ul class="sitemap-lists category-lists clear-fix">
  517. <?php foreach ($categorys as $category) :
  518. $title = $category->name;
  519. $title = htmlspecialchars_decode($title,ENT_QUOTES); ?>
  520. <li><a href="<?php echo get_term_link($category, $category->slug); ?>" title="<?php echo $title; ?>" target="_blank"><?php echo $title; ?></a></li>
  521. <?php endforeach; ?>
  522. </ul><?php
  523. endif;
  524. $tags = get_terms('post_tag','orderby=name&hide_empty=0');
  525. if(count($tags)): ?>
  526. <h2 class="section-title">标签 / Tag</h2>
  527. <ul class="sitemap-lists tag-lists clear-fix">
  528. <?php foreach ($tags as $tag) :
  529. $title = $tag->name;
  530. $title = htmlspecialchars_decode($title,ENT_QUOTES); ?>
  531. <li><a href="<?php echo get_term_link($tag, $tag->slug); ?>" title="<?php echo $title; ?>" target="_blank"><?php echo $title; ?></a></li>
  532. <?php endforeach; ?>
  533. </ul>
  534. <?php endif; ?>
  535. </div><!-- .container -->
  536. <footer class="page-footer">
  537. <?php _e('最后更新于','moedog'); ?> <?php echo get_lastpostdate('blog'); ?>
  538. <!-- 本页基于 mk-sitemap 插件 - https://mkblog.cn/ -->
  539. </footer>
  540. </body>
  541. </html><?php
  542. $sitemap = ob_get_contents();
  543. ob_clean();
  544. return $sitemap;
  545. }
  546. function kratos_sitemap_refresh(){
  547. $sitemap_xml = kratos_get_xml_sitemap();
  548. $sitemap_html = kratos_get_html_sitemap();
  549. file_put_contents(ABSPATH.'sitemap.xml',$sitemap_xml);
  550. file_put_contents(ABSPATH.'sitemap.html',$sitemap_html);
  551. }
  552. if(kratos_option('sitemap')&&defined('ABSPATH')){
  553. add_action('publish_post','kratos_sitemap_refresh');
  554. add_action('save_post','kratos_sitemap_refresh');
  555. add_action('edit_post','kratos_sitemap_refresh');
  556. add_action('delete_post','kratos_sitemap_refresh');
  557. }
  558. //New window-comment author link
  559. function comment_author_link_window(){
  560. global $comment;
  561. $url = get_comment_author_url();
  562. $author = get_comment_author();
  563. if(empty($url)||"http://"==$url||"https://"==$url)
  564. $return = $author;
  565. else
  566. $return = '<a href="'.$url.'" target="_blank" rel="nofollow">'.$author.'</a>';
  567. return $return;
  568. }
  569. add_filter('get_comment_author_link','comment_author_link_window');
  570. //Notice ***PLEASE DO NOT EDIT THIS 请不要修改此内容***
  571. function kratos_admin_notice(){
  572. global $noticeinfo;
  573. $noticeinfo = wp_remote_retrieve_body(wp_remote_get('https://api.fczbl.vip/kratos_notice/?v='.KRATOS_VERSION));
  574. if(!is_wp_error($noticeinfo)&&$noticeinfo) $noticeinfo = '<style type="text/css">.about-description a{text-decoration:none}</style><div class="notice notice-info"><p class="about-description">'.$noticeinfo.'</p></div>';
  575. if(kratos_option('kratos_notice')=='global'&&current_user_can('manage_options')) echo $noticeinfo;
  576. }
  577. function kratos_welcome_notice(){
  578. global $noticeinfo;
  579. if(current_user_can('manage_options')) echo $noticeinfo;
  580. }
  581. add_action('admin_notices','kratos_admin_notice');
  582. if(kratos_option('kratos_notice')=="welcome") add_action('welcome_panel','kratos_welcome_notice');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement