'; $html .= ''; $html .= '
'; $html .= '
'; $html .= '
'; $html .= ''; return $html; } /* * 使用本地图片作为头像,防止外源抽风问题 */ function get_avatar_profile_url(){ if(akina_option('focus_logo')){ $avatar = akina_option('focus_logo'); }else{ $avatar = get_avatar_url(get_the_author_meta( 'ID' )); } return $avatar; } /* * 首页随机背景图 * NB: I can think of this */ function get_random_bg_url(){ $arr = array(); for($i=0; $i<6; $i++){ if(akina_option('focus_img_'.$i)){ $arr[] = akina_option('focus_img_'.$i); } } $url = rand(0, count($arr)-1); return $arr[$url]; } /* * 订制时间样式 * poi_time_since(strtotime($post->post_date_gmt)); * poi_time_since(strtotime($comment->comment_date_gmt), true ); * 如果中途修改过Linux系统时间则继续使用GMT可能出现时差问题!! * poi_time_since(strtotime($post->post_date)); * poi_time_since(strtotime($comment->comment_date), true ); */ function poi_time_since( $older_date, $comment_date = false, $text = false ) { $chunks = array( array( 24 * 60 * 60, __( ' 天前', 'akina' ) ), array( 60 * 60 , __( ' 小时前', 'akina' ) ), array( 60 , __( ' 分钟前', 'akina' ) ), array( 1, __( ' 秒前', 'akina' ) ) ); $newer_date = time() - (akina_option('time_zone_fix')*60*60); $since = abs( $newer_date - $older_date ); if($text){ $output = ''; }else{ $output = '发布于 '; } if ( $since < 30 * 24 * 60 * 60 ) { for ( $i = 0, $j = count( $chunks ); $i < $j; $i ++ ) { $seconds = $chunks[ $i ][0]; $name = $chunks[ $i ][1]; if ( ( $count = floor( $since / $seconds ) ) != 0 ) { break; } } $output .= $count . $name; } else { $output .= $comment_date ? date( 'Y-m-d H:i', $older_date ) : date( 'Y-m-d', $older_date ); } return $output; } /* * 首页不显示指定的分类文章 */ if(akina_option('classify_display')){ function classify_display($query){ $source = akina_option('classify_display'); $cats = explode(',', $source); $cat = ''; if ( $query->is_home ) { foreach($cats as $k => $v) { $cat .= '-'.$v.','; //重组字符串 } $cat = trim($cat,','); $query->set( 'cat', $cat); } return $query; } add_filter( 'pre_get_posts', 'classify_display' ); } /* * 评论添加@ */ function comment_add_at( $comment_text, $comment = '') { if( $comment->comment_parent > 0) { $comment_text = '@'.get_comment_author( $comment->comment_parent ) . ' ' . $comment_text; } return $comment_text; } add_filter( 'comment_text' , 'comment_add_at', 20, 2); /* * Ajax评论 */ if ( version_compare( $GLOBALS['wp_version'], '4.4-alpha', '<' ) ) { wp_die('请升级到4.4以上版本'); } // 提示 if(!function_exists('siren_ajax_comment_err')) { function siren_ajax_comment_err($t) { header('HTTP/1.0 500 Internal Server Error'); header('Content-Type: text/plain;charset=UTF-8'); echo $t; exit; } } // 机器评论验证 function siren_robot_comment(){ if ( !$_POST['no-robot'] && !is_user_logged_in()) { siren_ajax_comment_err('上车请刷卡。
Please comfirm you are not a robot.'); } } if(akina_option('norobot')) add_action('pre_comment_on_post', 'siren_robot_comment'); // 纯英文评论拦截 function scp_comment_post( $incoming_comment ) { // 为什么要拦自己呢? global $user_ID; if( $user_ID && current_user_can('level_10') ) { return( $incoming_comment ); } elseif(!preg_match('/[一-龥]/u', $incoming_comment['comment_content'])){ siren_ajax_comment_err('写点汉字吧。You should add some Chinese words.'); } return( $incoming_comment ); } // add_filter('preprocess_comment', 'scp_comment_post'); // 国际化很重要 // 评论提交 if(!function_exists('siren_ajax_comment_callback')) { function siren_ajax_comment_callback(){ $comment = wp_handle_comment_submission( wp_unslash( $_POST ) ); if( is_wp_error( $comment ) ) { $data = $comment->get_error_data(); if ( !empty( $data ) ) { siren_ajax_comment_err($comment->get_error_message()); } else { exit; } } $user = wp_get_current_user(); do_action('set_comment_cookies', $comment, $user); $GLOBALS['comment'] = $comment; //根据你的评论结构自行修改,如使用默认主题则无需修改 ?>
  • id="comment-">
  • user_email, '110' ); ?>

    你好,display_name; ?>

    user_email){echo '

    '.$current_user->user_email.'

    ';} ?>

    首页 后台 登出?

    ', '', false); $t .= '

    '. get_the_author() .'·'. poi_time_since(get_post_time('U', true),false,true) .'·'. get_post_views(get_the_ID()) .' 次阅读

    '; endwhile; endif; }elseif(is_page()){ $full_image_url = $full_image_url[0]; $t .= the_title( '

    ', '

    ', false); }elseif(is_archive()){ $full_image_url = z_taxonomy_image_url(); $des = category_description() ? category_description() : ''; // 描述 $t .= '

    '.single_cat_title('', false).'

    '; $t .= ' '.$des.''; }elseif(is_search()){ $full_image_url = get_random_bg_url(); $t .= '

    关于“ '.get_search_query().' ”的搜索结果

    '; } if(akina_option('patternimg')) $full_image_url = false; if(!is_home() && $full_image_url) : ?>
    '; endif; } /* * 导航栏用户菜单 */ function header_user_menu(){ global $current_user;get_currentuserinfo(); if(is_user_logged_in()){ $ava = akina_option('focus_logo') ? akina_option('focus_logo') : get_avatar_url( $current_user->user_email ); ?>
    Signed in as
    display_name; ?>
    Whether to log in now?
    文章图 -> 首页图 */ // 上一篇 function get_prev_thumbnail_url() { $prev_post = get_previous_post(); if ( has_post_thumbnail($prev_post->ID) ) { $img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $prev_post->ID ), 'large'); return $img_src[0]; // 特色图 } else { $content = $prev_post->post_content; preg_match_all('//sim', $content, $strResult, PREG_PATTERN_ORDER); $n = count($strResult[1]); if($n > 0){ return $strResult[1][0]; // 文章图 }else{ return get_random_bg_url(); // 首页图 } } } // 下一篇 function get_next_thumbnail_url() { $next_post = get_next_post(); if ( has_post_thumbnail($next_post->ID) ) { $img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $next_post->ID ), 'large'); return $img_src[0]; } else { $content = $next_post->post_content; preg_match_all('//sim', $content, $strResult, PREG_PATTERN_ORDER); $n = count($strResult[1]); if($n > 0){ return $strResult[1][0]; }else{ return get_random_bg_url(); } } } /** * 文章摘要 */ function changes_post_excerpt_more( $more ) { return ' ...'; } function changes_post_excerpt_length( $length ) { return 65; } add_filter( 'excerpt_more', 'changes_post_excerpt_more' ); add_filter( 'excerpt_length', 'changes_post_excerpt_length', 999 ); /* * SEO优化 */ // 外部链接自动加nofollow add_filter( 'the_content', 'siren_auto_link_nofollow'); function siren_auto_link_nofollow( $content ) { $regexp = "]*href=(\"??)([^\" >]*?)\\1[^>]*>"; if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) { if( !empty($matches) ) { $srcUrl = get_option('siteurl'); for ($i=0; $i < count($matches); $i++){ $tag = $matches[$i][0]; $tag2 = $matches[$i][0]; $url = $matches[$i][0]; $noFollow = ''; $pattern = '/target\s*=\s*"\s*_blank\s*"/'; preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE); if( count($match) < 1 ) $noFollow .= ' target="_blank" '; $pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/'; preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE); if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>'); $tag .= $noFollow.'>'; $content = str_replace($tag2,$tag,$content); } } } } $content = str_replace(']]>', ']]>', $content); return $content; } // 图片自动加标题 add_filter('the_content', 'siren_auto_images_alt'); function siren_auto_images_alt($content) { global $post; $pattern ="//i"; $replacement = ''; $content = preg_replace($pattern, $replacement, $content); return $content; } // 分类页面全部添加斜杠,利于SEO function siren_nice_trailingslashit($string, $type_of_url) { if ( $type_of_url != 'single' ) $string = trailingslashit($string); return $string; } add_filter('user_trailingslashit', 'siren_nice_trailingslashit', 10, 2); // 去除链接显示categroy add_action( 'load-themes.php', 'no_category_base_refresh_rules'); add_action('created_category', 'no_category_base_refresh_rules'); add_action('edited_category', 'no_category_base_refresh_rules'); add_action('delete_category', 'no_category_base_refresh_rules'); function no_category_base_refresh_rules() { global $wp_rewrite; $wp_rewrite -> flush_rules(); } // Remove category base add_action('init', 'no_category_base_permastruct'); function no_category_base_permastruct() { global $wp_rewrite, $wp_version; if (version_compare($wp_version, '3.4', '<')) { } else { $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%'; } } // Add our custom category rewrite rules add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); function no_category_base_rewrite_rules($category_rewrite) { //var_dump($category_rewrite); // For Debugging $category_rewrite = array(); $categories = get_categories(array('hide_empty' => false)); foreach ($categories as $category) { $category_nicename = $category -> slug; if ($category -> parent == $category -> cat_ID)// recursive recursion $category -> parent = 0; elseif ($category -> parent != 0) $category_nicename = get_category_parents($category -> parent, false, '/', true) . $category_nicename; $category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]'; $category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]'; $category_rewrite['(' . $category_nicename . ')/?$'] = 'index.php?category_name=$matches[1]'; } // Redirect support from Old Category Base global $wp_rewrite; $old_category_base = get_option('category_base') ? get_option('category_base') : 'category'; $old_category_base = trim($old_category_base, '/'); $category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]'; //var_dump($category_rewrite); // For Debugging return $category_rewrite; } // Add 'category_redirect' query variable add_filter('query_vars', 'no_category_base_query_vars'); function no_category_base_query_vars($public_query_vars) { $public_query_vars[] = 'category_redirect'; return $public_query_vars; } // Redirect if 'category_redirect' is set add_filter('request', 'no_category_base_request'); function no_category_base_request($query_vars) { //print_r($query_vars); // For Debugging if (isset($query_vars['category_redirect'])) { $catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category'); status_header(301); header("Location: $catlink"); exit(); } return $query_vars; } // 去除链接显示categroy END ~ /** * 更改作者页链接为昵称显示 */ // Replace the user name using the nickname, query by user ID add_filter( 'request', 'siren_request' ); function siren_request( $query_vars ){ if ( array_key_exists( 'author_name', $query_vars ) ) { global $wpdb; $author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s", $query_vars['author_name'] ) ); if ( $author_id ) { $query_vars['author'] = $author_id; unset( $query_vars['author_name'] ); } } return $query_vars; } // Replace a user name in a link with a nickname add_filter( 'author_link', 'siren_author_link', 10, 3 ); function siren_author_link( $link, $author_id, $author_nicename ){ $author_nickname = get_user_meta( $author_id, 'nickname', true ); if ( $author_nickname ) { $link = str_replace( $author_nicename, $author_nickname, $link ); } return $link; } /* * 私密评论 * @bigfa */ function siren_private_message_hook($comment_content , $comment){ $comment_ID = $comment->comment_ID; $parent_ID = $comment->comment_parent; $parent_email = get_comment_author_email($parent_ID); $is_private = get_comment_meta($comment_ID,'_private',true); $email = $comment->comment_author_email; $current_commenter = wp_get_current_commenter(); if ( $is_private ) $comment_content = '#私密# ' . $comment_content; if ( $current_commenter['comment_author_email'] == $email || $parent_email == $current_commenter['comment_author_email'] || current_user_can('delete_user') ) return $comment_content; if ( $is_private ) return ' 该评论为私密评论'; return $comment_content; } add_filter('get_comment_text','siren_private_message_hook',10,2); function siren_mark_private_message($comment_id){ if ( $_POST['is-private'] ) { update_comment_meta($comment_id,'_private','true'); } } add_action('comment_post', 'siren_mark_private_message'); /* * 删除后台某些版权和链接 * @wpdx */ add_filter('admin_title', 'wpdx_custom_admin_title', 10, 2); function wpdx_custom_admin_title($admin_title, $title){ return $title.' ‹ '.get_bloginfo('name'); } //去掉Wordpress LOGO function remove_logo($wp_toolbar) { $wp_toolbar->remove_node('wp-logo'); } add_action('admin_bar_menu', 'remove_logo', 999); //去掉Wordpress 底部版权 function change_footer_admin () {return '';} add_filter('admin_footer_text', 'change_footer_admin', 9999); function change_footer_version() {return '';} add_filter( 'update_footer', 'change_footer_version', 9999); //去掉Wordpres挂件 function disable_dashboard_widgets() { //remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');//近期评论 //remove_meta_box('dashboard_recent_drafts', 'dashboard', 'normal');//近期草稿 remove_meta_box('dashboard_primary', 'dashboard', 'core');//wordpress博客 remove_meta_box('dashboard_secondary', 'dashboard', 'core');//wordpress其它新闻 remove_meta_box('dashboard_right_now', 'dashboard', 'core');//wordpress概况 //remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');//wordresss链入链接 //remove_meta_box('dashboard_plugins', 'dashboard', 'core');//wordpress链入插件 //remove_meta_box('dashboard_quick_press', 'dashboard', 'core');//wordpress快速发布 } add_action('admin_menu', 'disable_dashboard_widgets'); /** * 获取用户UA信息 */ // 浏览器信息 function siren_get_browsers($ua){ $title = 'unknow'; $icon = 'unknow'; if (preg_match('#MSIE ([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Internet Explorer '. $matches[1]; if ( strpos($matches[1], '7') !== false || strpos($matches[1], '8') !== false) $icon = 'ie8'; elseif ( strpos($matches[1], '9') !== false) $icon = 'ie9'; elseif ( strpos($matches[1], '10') !== false) $icon = 'ie10'; else $icon = 'ie'; }elseif (preg_match('#Edge/([a-zA-Z0-9.]+)#i', $ua, $matches)){ $title = 'Microsoft Edge '. $matches[1]; $icon = 'edge'; }elseif (preg_match('#360([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = '360 Browser '. $matches[1]; $icon = '360se'; }elseif (preg_match('#SE 2([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'SouGou Browser 2'.$matches[1]; $icon = 'sogou'; }elseif (preg_match('#LBBROWSER#i', $ua, $matches)) { $title = 'CM Browser'; $icon = 'LBBROWSER'; }elseif (preg_match('#MicroMessenger/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Built-in Browser of WeChat '.$matches[1]; $icon = 'wechat'; }elseif (preg_match('#QQBrowser/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'QQBrowser '.$matches[1]; $icon = 'QQBrowser'; }elseif (preg_match('#BIDUBrowser/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Baidu Browser '.$matches[1]; $icon = 'baidu'; }elseif (preg_match('#UCWEB([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'UCWEB '. $matches[1]; $icon = 'ucweb'; }elseif (preg_match('#Firefox/([a-zA-Z0-9.]+)#i', $ua, $matches)){ $title = 'Firefox '. $matches[1]; $icon = 'firefox'; }elseif (preg_match('#CriOS/([a-zA-Z0-9.]+)#i', $ua, $matches)){ $title = 'Chrome for iOS '. $matches[1]; $icon = 'crios'; }elseif (preg_match('#Chrome/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Google Chrome '. $matches[1]; $icon = 'chrome'; if (preg_match('#OPR/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Opera '. $matches[1]; $icon = 'opera15'; if (preg_match('#opera mini#i', $ua)) $title = 'Opera Mini'. $matches[1]; } }elseif (preg_match('#Safari/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Safari '. $matches[1]; $icon = 'safari'; }elseif (preg_match('#Opera.(.*)Version[ /]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $title = 'Opera '. $matches[2]; $icon = 'opera'; if (preg_match('#opera mini#i', $ua)) $title = 'Opera Mini'. $matches[2]; }elseif (preg_match('#Maxthon( |\/)([a-zA-Z0-9.]+)#i', $ua,$matches)) { $title = 'Maxthon '. $matches[2]; $icon = 'maxthon'; }elseif(preg_match('#wp-(iphone|android)/([a-zA-Z0-9.]+)#i', $ua, $matches)){ // 1.2 增加 wordpress 客户端的判断 $title = 'wordpress '. $matches[2]; $icon = 'wordpress'; } return array( $title, $icon ); } // 操作系统信息 function siren_get_os($ua){ $title = 'unknow'; $icon = 'unknow'; if (preg_match('/win/i', $ua)) { if (preg_match('/Windows NT 10.0/i', $ua)) { $title = "Windows 10"; $icon = "windows_win10"; }elseif (preg_match('/Windows NT 6.1/i', $ua)) { $title = "Windows 7"; $icon = "windows_win7"; }elseif (preg_match('/Windows NT 5.1/i', $ua)) { $title = "Windows XP"; $icon = "windows"; }elseif (preg_match('/Windows NT 6.2/i', $ua)) { $title = "Windows 8"; $icon = "windows_win8"; }elseif (preg_match('/Windows NT 6.3/i', $ua)) { $title = "Windows 8.1"; $icon = "windows_win8"; }elseif (preg_match('/Windows NT 6.0/i', $ua)) { $title = "Windows Vista"; $icon = "windows_vista"; }elseif (preg_match('/Windows NT 5.2/i', $ua)) { if (preg_match('/Win64/i', $ua)) { $title = "Windows XP 64 bit"; } else { $title = "Windows Server 2003"; } $icon = 'windows'; }elseif (preg_match('/Windows Phone/i', $ua)) { $matches = explode(';',$ua); $title = $matches[2]; $icon = "windows_phone"; } }elseif (preg_match('#iPod.*.CPU.([a-zA-Z0-9.( _)]+)#i', $ua, $matches)) { $title = "iPod ".$matches[1]; $icon = "iphone"; } elseif (preg_match('#iPhone OS ([a-zA-Z0-9.( _)]+)#i', $ua, $matches)) {// 1.2 修改成 iphone os 来判断 $title = "Iphone ".$matches[1]; $icon = "iphone"; } elseif (preg_match('#iPad.*.CPU.([a-zA-Z0-9.( _)]+)#i', $ua, $matches)) { $title = "iPad ".$matches[1]; $icon = "ipad"; } elseif (preg_match('/Android.([0-9. _]+)/i', $ua, $matches)) { if(count(explode(7,$matches[1]))>1) $matches[1] = 'Lion '.$matches[1]; elseif(count(explode(8,$matches[1]))>1) $matches[1] = 'Mountain Lion '.$matches[1]; $title= $matches[0]; $icon = "android"; } elseif (preg_match('/Mac OS X.([0-9. _]+)/i', $ua, $matches)) { if(count(explode(7,$matches[1]))>1) $matches[1] = 'Lion '.$matches[1]; elseif(count(explode(8,$matches[1]))>1) $matches[1] = 'Mountain Lion '.$matches[1]; $title = "Mac OSX ".$matches[1]; $icon = "macos"; } elseif (preg_match('/Macintosh/i', $ua)) { $title = "Mac OS"; $icon = "macos"; } elseif (preg_match('/CrOS/i', $ua)){ $title = "Google Chrome OS"; $icon = "chrome"; }elseif (preg_match('/Linux/i', $ua)) { $title = 'Linux'; $icon = 'linux'; if (preg_match('/Android.([0-9. _]+)/i',$ua, $matches)) { $title= $matches[0]; $icon = "android"; }elseif (preg_match('#Ubuntu#i', $ua)) { $title = "Ubuntu Linux"; $icon = "ubuntu"; }elseif(preg_match('#Debian#i', $ua)) { $title = "Debian GNU/Linux"; $icon = "debian"; }elseif (preg_match('#Fedora#i', $ua)) { $title = "Fedora Linux"; $icon = "fedora"; } } return array( $title, $icon ); } function siren_get_useragent($ua){ if(akina_option('open_useragent')){ // $imgurl = get_bloginfo('template_directory') . '/images/ua/'; $imgurl = 'https://cdn.jsdelivr.net/gh/moezx/cdn@3.2.7/img/Sakura/images/ua/svg/'; $browser = siren_get_browsers($ua); $os = siren_get_os($ua); return '  (  '. $browser[0] .'   '. $os[0] .' )'; } return false; } // UA 显示移动定制 function mobile_get_useragent_icon($ua){ if(akina_option('open_useragent')){ $imgurl = 'https://cdn.jsdelivr.net/gh/moezx/cdn@3.2.7/img/Sakura/images/ua/svg/'; $browser = siren_get_browsers($ua); $os = siren_get_os($ua); return '(    )'; } return false; } /* * 打赏 */ function the_reward(){ $alipay = akina_option('alipay_code'); $wechat = akina_option('wechat_code'); if($alipay || $wechat){ $alipay = $alipay ? '
  • ' : ''; $wechat = $wechat ? '
  • ' : ''; ?>