orz.moe y.php,functions.php

Sakura主题的配置文件包含了多种优化措施,如去除冗余代码、加载CDN资源、调整布局和评论功能等。它还支持自定义背景、头像和字体,以及评论回复邮件通知。此外,代码中还涉及到了WordPress的主题支持、脚本和样式的加载,以及对Gravatar和链接的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**

* Sakura functions and definitions.

*

* @link https://developer.wordpress.org/themes/basics/theme-functions/

*

* @package Sakura

*/

define( 'SAKURA_VERSION', '3.1.6' );

define( 'BUILD_VERSION', '1' );

define( 'JSDELIVR_VERSION', '3.6.7' );

//ini_set('display_errors', true);

//error_reporting(E_ALL);

if ( !function_exists( 'akina_setup' ) ) :

/**

* Sets up theme defaults and registers support for various WordPress features.

*

* Note that this function is hooked into the after_setup_theme hook, which

* runs before the init hook. The init hook is too late for some features, such

* as indicating support for post thumbnails.

*/

if ( !function_exists( 'optionsframework_init' ) ) {

define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/inc/' );

require_once dirname( __FILE__ ) . '/inc/options-framework.php';

}

function akina_setup() {

/*

* Make theme available for translation.

* Translations can be filed in the /languages/ directory.

* If you're building a theme based on Akina, use a find and replace

* to change 'akina' to the name of your theme in all the template files.

*/

load_theme_textdomain( 'akina', get_template_directory() . '/languages' );

/*

* Enable support for Post Thumbnails on posts and pages.

*

* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/

*/

add_theme_support( 'post-thumbnails' );

set_post_thumbnail_size( 150, 150, true );

// This theme uses wp_nav_menu() in one location.

register_nav_menus( array(

'primary' => esc_html__( '导航菜单', 'akina' ),

) );

/*

* Switch default core markup for search form, comment form, and comments

* to output valid HTML5.

*/

add_theme_support( 'html5', array(

'search-form',

'comment-form',

'comment-list',

'gallery',

'caption',

) );

/*

* Enable support for Post Formats.

* See https://developer.wordpress.org/themes/functionality/post-formats/

*/

add_theme_support( 'post-formats', array(

'aside',

'image',

'status',

) );

// Set up the WordPress core custom background feature.

add_theme_support( 'custom-background', apply_filters( 'akina_custom_background_args', array(

'default-color' => 'ffffff',

'default-image' => '',

) ) );

add_filter('pre_option_link_manager_enabled','__return_true');

// 优化代码

//去除头部冗余代码

remove_action('wp_head', 'feed_links_extra', 3);

remove_action('wp_head', 'rsd_link');

remove_action('wp_head', 'wlwmanifest_link');

remove_action('wp_head', 'index_rel_link');

remove_action('wp_head', 'start_post_rel_link', 10, 0);

remove_action('wp_head', 'wp_generator');

remove_action( 'wp_head', 'wp_generator' ); //隐藏wordpress版本

remove_filter('the_content', 'wptexturize'); //取消标点符号转义

remove_action('rest_api_init', 'wp_oembed_register_route');

remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4);

remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);

remove_filter('oembed_response_data', 'get_oembed_response_data_rich', 10, 4);

remove_action('wp_head', 'wp_oembed_add_discovery_links');

remove_action('wp_head', 'wp_oembed_add_host_js');

remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

function coolwp_remove_open_sans_from_wp_core() {

wp_deregister_style( 'open-sans' );

wp_register_style( 'open-sans', false );

wp_enqueue_style('open-sans','');

}

add_action( 'init', 'coolwp_remove_open_sans_from_wp_core' );

/**

* Disable the emoji's

*/

function disable_emojis() {

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );

remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );

remove_action( 'wp_print_styles', 'print_emoji_styles' );

remove_action( 'admin_print_styles', 'print_emoji_styles' );

remove_filter( 'the_content_feed', 'wp_staticize_emoji' );

remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );

remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );

}

add_action( 'init', 'disable_emojis' );

/**

* Filter function used to remove the tinymce emoji plugin.

*

* @param array $plugins

* @return array Difference betwen the two arrays

*/

function disable_emojis_tinymce( $plugins ) {

if ( is_array( $plugins ) ) {

return array_diff( $plugins, array( 'wpemoji' ) );

} else {

return array();

}

}

// 移除菜单冗余代码

add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);

add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);

add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);

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')) : '';

}

}

endif;

add_action( 'after_setup_theme', 'akina_setup' );

function admin_lettering(){

echo'';

}

add_action('admin_head', 'admin_lettering');

/**

* Set the content width in pixels, based on the theme's design and stylesheet.

*

* Priority 0 to make it available to lower priority callbacks.

*

* @global int $content_width

*/

function akina_content_width() {

$GLOBALS['content_width'] = apply_filters( 'akina_content_width', 640 );

}

add_action( 'after_setup_theme', 'akina_content_width', 0 );

/**

* Enqueue scripts and styles.

*/

function sakura_scripts() {

if(akina_option('jsdelivr_cdn_test')){

wp_enqueue_script( 'js_lib', get_template_directory_uri() . '/cdn/js/lib.js', array(), SAKURA_VERSION.akina_option('cookie_version', ''), true );

} else {

wp_enqueue_script( 'js_lib', 'https://cdn.jsdelivr.net/gh/mashirozx/Sakura@' . SAKURA_VERSION . '/cdn/js/lib.min.js', array(), SAKURA_VERSION, true );

}

if (akina_option('app_no_jsdelivr_cdn')) {

wp_enqueue_style( 'saukra_css', get_stylesheet_uri(), array(), SAKURA_VERSION );

wp_enqueue_script( 'app', get_template_directory_uri() . '/js/sakura-app.js', array(), SAKURA_VERSION, true );

} else {

wp_enqueue_style( 'saukra_css', 'https://cdn.jsdelivr.net/gh/mashirozx/Sakura@' . SAKURA_VERSION . '/style.min.css', array(), SAKURA_VERSION );

wp_enqueue_script( 'app', 'https://cdn.jsdelivr.net/gh/mashirozx/Sakura@' . SAKURA_VERSION . '/js/sakura-app.min.js', array(), SAKURA_VERSION, true );

}

if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {

wp_enqueue_script( 'comment-reply' );

}

// 20161116 @Louie

$mv_live = akina_option('focus_mvlive') ? 'open' : 'close';

$movies = akina_option('focus_amv') ? array('url' => akina_option('amv_url'), 'name' => akina_option('amv_title'), 'live' => $mv_live) : 'close';

$auto_height = akina_option('focus_height') ? 'fixed' : 'auto';

$code_lamp = 'close';

if(wp_is_mobile()) $auto_height = 'fixed'; //拦截移动端

version_compare( $GLOBALS['wp_version'], '5.1', '>=' ) ? $reply_link_version = 'new' : $reply_link_version = 'old';

wp_localize_script( 'app', 'Poi' , array(

'pjax' => akina_option('poi_pjax'),

'movies' => $movies,

'windowheight' => $auto_height,

'codelamp' => $code_lamp,

'ajaxurl' => admin_url('admin-ajax.php'),

'order' => get_option('comment_order'), // ajax comments

'formpostion' => 'bottom', // ajax comments 默认为bottom,如果你的表单在顶部则设置为top。

'reply_link_version' => $reply_link_version

));

}

add_action( 'wp_enqueue_scripts', 'sakura_scripts' );

/**

* load .php.

*/

require get_template_directory() .'/inc/decorate.php';

require get_template_directory() .'/inc/swicher.php';

/**

* Custom template tags for this theme.

*/

require get_template_directory() . '/inc/template-tags.php';

/**

* Customizer additions.

*/

require get_template_directory() . '/inc/customizer.php';

/**

* function update

*/

require get_template_directory() . '/inc/theme_plus.php';

require get_template_directory() . '/inc/categories-images.php';

//Comment Location Start

function convertip($ip) {

$dat_path = dirname(__FILE__).'/inc/QQWry.Dat';

if(!$fd = @fopen($dat_path, 'rb')){

return 'IP date file not exists or access denied';

}

$ip = explode('.', $ip);

$ipNum = intval($ip[0]) * 16777216 + intval($ip[1]) * 65536 + intval($ip[2]) * 256 + intval($ip[3]);

$DataBegin = fread($fd, 4);

$DataEnd = fread($fd, 4);

$ipbegin = implode('', unpack('L', $DataBegin));

if($ipbegin < 0) $ipbegin += pow(2, 32);

$ipend = implode('', unpack('L', $DataEnd));

if($ipend < 0) $ipend += pow(2, 32);

$ipAllNum = ($ipend - $ipbegin) / 7 + 1;

$BeginNum = 0;

$EndNum = $ipAllNum;

while($ip1num>$ipNum || $ip2num

$Middle= intval(($EndNum + $BeginNum) / 2);

fseek($fd, $ipbegin + 7 * $Middle);

$ipData1 = fread($fd, 4);

if(strlen($ipData1) < 4) {

fclose($fd);

return 'System Error';

}

$ip1num = implode('', unpack('L', $ipData1));

if($ip1num < 0) $ip1num += pow(2, 32);

if($ip1num > $ipNum) {

$EndNum = $Middle;

continue;

}

$DataSeek = fread($fd, 3);

if(strlen($DataSeek) < 3) {

fclose($fd);

return 'System Error';

}

$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));

fseek($fd, $DataSeek);

$ipData2 = fread($fd, 4);

if(strlen($ipData2) < 4) {

fclose($fd);

return 'System Error';

}

$ip2num = implode('', unpack('L', $ipData2));

if($ip2num < 0) $ip2num += pow(2, 32);

if($ip2num < $ipNum) {

if($Middle == $BeginNum) {

fclose($fd);

return 'Unknown';

}

$BeginNum = $Middle;

}

}

$ipFlag = fread($fd, 1);

if($ipFlag == chr(1)) {

$ipSeek = fread($fd, 3);

if(strlen($ipSeek) < 3) {

fclose($fd);

return 'System Error';

}

$ipSeek = implode('', unpack('L', $ipSeek.chr(0)));

fseek($fd, $ipSeek);

$ipFlag = fread($fd, 1);

}

if($ipFlag == chr(2)) {

$AddrSeek = fread($fd, 3);

if(strlen($AddrSeek) < 3) {

fclose($fd);

return 'System Error';

}

$ipFlag = fread($fd, 1);

if($ipFlag == chr(2)) {

$AddrSeek2 = fread($fd, 3);

if(strlen($AddrSeek2) < 3) {

fclose($fd);

return 'System Error';

}

$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));

fseek($fd, $AddrSeek2);

} else {

fseek($fd, -1, SEEK_CUR);

}

while(($char = fread($fd, 1)) != chr(0))

$ipAddr2 .= $char;

$AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));

fseek($fd, $AddrSeek);

while(($char = fread($fd, 1)) != chr(0))

$ipAddr1 .= $char;

} else {

fseek($fd, -1, SEEK_CUR);

while(($char = fread($fd, 1)) != chr(0))

$ipAddr1 .= $char;

$ipFlag = fread($fd, 1);

if($ipFlag == chr(2)) {

$AddrSeek2 = fread($fd, 3);

if(strlen($AddrSeek2) < 3) {

fclose($fd);

return 'System Error';

}

$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));

fseek($fd, $AddrSeek2);

} else {

fseek($fd, -1, SEEK_CUR);

}

while(($char = fread($fd, 1)) != chr(0)){

$ipAddr2 .= $char;

}

}

fclose($fd);

if(preg_match('/http/i', $ipAddr2)) {

$ipAddr2 = '';

}

$ipaddr = "$ipAddr1 $ipAddr2";

$ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);

$ipaddr = preg_replace('/^s*/is', '', $ipaddr);

$ipaddr = preg_replace('/s*$/is', '', $ipaddr);

if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {

$ipaddr = 'Unknown';

}

$ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr);

if( $ipaddr != ' ' )

return $ipaddr;

else

$ipaddr = '火星来客';

return $ipaddr;

}

//Comment Location End

/**

* COMMENT FORMATTING

*

* 标准的 lazyload 输出头像

* <?php echo str_replace( 'src=', 'src="https://cdn.jsdelivr.net/gh/moezx/cdn@3.0.1/img/svg/loader/index.ajax-spinner-preloader.svg" οnerrοr="imgError(this,1)" data-src=', get_avatar( $comment->comment_author_email, '80', '', get_comment_author(), array( 'class' => array( 'lazyload' ) ) ) ); ?>

*

* 如果不延时是这样的

* <?php echo get_avatar( $comment->comment_author_email, '80', '', get_comment_author() ); ?>

*

*/

if(!function_exists('akina_comment_format')){

function akina_comment_format($comment, $args, $depth){

$GLOBALS['comment'] = $comment;

?>

id="comment-<?php echo esc_attr(comment_ID()); ?>">

<?php comment_reply_link(array_merge($args, array('depth' => $depth, 'max_depth' => $args['max_depth']))); ?>

<?php echo poi_time_since(strtotime($comment->comment_date_gmt), true );//comment_date(get_option('date_format')); ?><?php echo siren_get_useragent($comment->comment_agent); ?><?php echo mobile_get_useragent_icon($comment->comment_agent); ?> 来自: <?php echo convertip(get_comment_author_ip()); ?>

$comment_ID = $comment->comment_ID;

$i_private = get_comment_meta($comment_ID, '_private', true);

$flag .= ' 状态: 私密(';

if (!empty($i_private)) {

$flag .= '是 ';

} else {

$flag .= '否 ';

}

$flag .= ')';

echo $flag;

} ?>


}

}

/**

* 获取访客VIP样式

*/

function get_author_class($comment_author_email, $user_id){

global $wpdb;

$author_count = count($wpdb->get_results(

"SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = '$comment_author_email' "));

if($author_count>=1 && $author_count< 5 )//数字可自行修改,代表评论次数。

echo 'level_0.svg';

else if($author_count>=6 && $author_count< 10)

echo 'level_1.svg';

else if($author_count>=10 && $author_count< 20)

echo 'level_2.svg';

else if($author_count>=20 && $author_count< 40)

echo 'level_3.svg';

else if($author_count>=40 && $author_count< 80)

echo 'level_4.svg';

else if($author_count>=80 && $author_count< 160)

echo 'level_5.svg';

else if($author_count>=160)

echo 'level_6.svg';

}

/**

* post views.

* @bigfa

*/

function restyle_text($number) {

if($number >= 1000) {

return round($number/1000,2) . 'k';

}else{

return $number;

}

}

function set_post_views() {

global $post;

$post_id = intval($post->ID);

$count_key = 'views';

$views = get_post_custom($post_id);

$views = intval($views['views'][0]);

if(is_single() || is_page()) {

if(!update_post_meta($post_id, 'views', ($views + 1))) {

add_post_meta($post_id, 'views', 1, true);

}

}

}

add_action('get_header', 'set_post_views');

function get_post_views($post_id) {

/* 修改需配合统计插件

* $count_key = 'views';

* $views = get_post_custom($post_id);

* $views = intval($views['views'][0]);

* $post_views = intval(post_custom('views'));

* if($views == '') {

* return 0;

* }else{

* return restyle_text($views);

* }

*/

return wp_statistics_pages('total','uri',$post_id);

}

/*

* Ajax点赞

*/

add_action('wp_ajax_nopriv_specs_zan', 'specs_zan');

add_action('wp_ajax_specs_zan', 'specs_zan');

function specs_zan(){

global $wpdb,$post;

$id = $_POST["um_id"];

$action = $_POST["um_action"];

if ( $action == 'ding'){

$specs_raters = get_post_meta($id,'specs_zan',true);

$expire = time() + 99999999;

$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; // make cookies work with localhost

setcookie('specs_zan_'.$id,$id,$expire,'/',$domain,false);

if (!$specs_raters || !is_numeric($specs_raters)) {

update_post_meta($id, 'specs_zan', 1);

}

else {

update_post_meta($id, 'specs_zan', ($specs_raters + 1));

}

echo get_post_meta($id,'specs_zan',true);

}

die;

}

/*

* 友情链接

*/

function get_the_link_items($id = null){

$bookmarks = get_bookmarks('orderby=date&category=' .$id );

$output = '';

if ( !empty($bookmarks) ) {

$output .= '

foreach ($bookmarks as $bookmark) {

if (empty($bookmark->link_description)) $bookmark->link_description = '这家伙好懒╮(╯▽╰)╭';

if (empty($bookmark->link_image)) $bookmark->link_image = 'https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg';

$output .= '

'%20.%20%24bookmark->link_image%20.%20''. $bookmark->link_name .' ';

}

$output .= '

';

}

return $output;

}

function get_link_items(){

$linkcats = get_terms( 'link_category' );

if ( !empty($linkcats) ) {

foreach( $linkcats as $linkcat){

$result .= '

';

if( $linkcat->description ) $result .= '

';

$result .= get_the_link_items($linkcat->term_id);

}

} else {

$result = get_the_link_items();

}

return $result;

}

/*

* Gravatar头像使用中国服务器

*/

function gravatar_cn( $url ){

$gravatar_url = array('0.gravatar.com','1.gravatar.com','2.gravatar.com','secure.gravatar.com');

return str_replace( $gravatar_url, 'gravatar.shino.cc', $url );

}

add_filter( 'get_avatar_url', 'gravatar_cn', 4 );

/*

* 自定义默认头像

*/

add_filter( 'avatar_defaults', 'mytheme_default_avatar' );

function mytheme_default_avatar ( $avatar_defaults ) {

//$new_avatar_url = get_template_directory_uri() . '/images/default_avatar.png';

$new_avatar_url = 'https://cn.gravatar.com/avatar/b745710ae6b0ce9dfb13f5b7c0956be1';

$avatar_defaults[$new_avatar_url] = 'Default Avatar';

return $avatar_defaults;

}

/*

* 阻止站内文章互相Pingback

*/

function theme_noself_ping( &$links ) {

$home = get_option( 'home' );

foreach ( $links as $l => $link )

if ( 0 === strpos( $link, $home ) )

unset($links[$l]);

}

add_action('pre_ping','theme_noself_ping');

/*

* 订制body类

*/

function akina_body_classes( $classes ) {

// Adds a class of group-blog to blogs with more than 1 published author.

if ( is_multi_author() ) {

$classes[] = 'group-blog';

}

// Adds a class of hfeed to non-singular pages.

if ( ! is_singular() ) {

$classes[] = 'hfeed';

}

// 定制中文字体class

$classes[] = 'chinese-font';

/*if(!wp_is_mobile()) {

$classes[] = 'serif';

}*/

return $classes;

}

add_filter( 'body_class', 'akina_body_classes' );

/*

* 图片CDN

*/

add_filter( 'upload_dir', 'wpjam_custom_upload_dir' );

function wpjam_custom_upload_dir( $uploads ) {

$upload_path = '';

$upload_url_path = akina_option('qiniu_cdn');

if ( empty( $upload_path ) || 'wp-content/uploads' == $upload_path ) {

$uploads['basedir'] = WP_CONTENT_DIR . '/uploads';

} elseif ( 0 !== strpos( $upload_path, ABSPATH ) ) {

$uploads['basedir'] = path_join( ABSPATH, $upload_path );

} else {

$uploads['basedir'] = $upload_path;

}

$uploads['path'] = $uploads['basedir'].$uploads['subdir'];

if ( $upload_url_path ) {

$uploads['baseurl'] = $upload_url_path;

$uploads['url'] = $uploads['baseurl'].$uploads['subdir'];

}

return $uploads;

}

/*

* 删除自带小工具

*/

function unregister_default_widgets() {

unregister_widget("WP_Widget_Pages");

unregister_widget("WP_Widget_Calendar");

unregister_widget("WP_Widget_Archives");

unregister_widget("WP_Widget_Links");

unregister_widget("WP_Widget_Meta");

unregister_widget("WP_Widget_Search");

unregister_widget("WP_Widget_Text");

unregister_widget("WP_Widget_Categories");

unregister_widget("WP_Widget_Recent_Posts");

unregister_widget("WP_Widget_Recent_Comments");

unregister_widget("WP_Widget_RSS");

unregister_widget("WP_Widget_Tag_Cloud");

unregister_widget("WP_Nav_Menu_Widget");

}

add_action("widgets_init", "unregister_default_widgets", 11);

/**

* Jetpack setup function.

*

* See: https://jetpack.com/support/infinite-scroll/

* See: https://jetpack.com/support/responsive-videos/

*/

function akina_jetpack_setup() {

// Add theme support for Infinite Scroll.

add_theme_support( 'infinite-scroll', array(

'container' => 'main',

'render' => 'akina_infinite_scroll_render',

'footer' => 'page',

) );

// Add theme support for Responsive Videos.

add_theme_support( 'jetpack-responsive-videos' );

}

add_action( 'after_setup_theme', 'akina_jetpack_setup' );

/**

* Custom render function for Infinite Scroll.

*/

function akina_infinite_scroll_render() {

while ( have_posts() ) {

the_post();

if ( is_search() ) :

get_template_part( 'tpl/content', 'search' );

else :

get_template_part( 'tpl/content', get_post_format() );

endif;

}

}

/*

* 编辑器增强

*/

function enable_more_buttons($buttons) {

$buttons[] = 'hr';

$buttons[] = 'del';

$buttons[] = 'sub';

$buttons[] = 'sup';

$buttons[] = 'fontselect';

$buttons[] = 'fontsizeselect';

$buttons[] = 'cleanup';

$buttons[] = 'styleselect';

$buttons[] = 'wp_page';

$buttons[] = 'anchor';

$buttons[] = 'backcolor';

return $buttons;

}

add_filter("mce_buttons_3", "enable_more_buttons");

// 下载按钮

function download($atts, $content = null) {

return '

target="_blank" title="下载地址">

Download

';}

add_shortcode("download", "download");

add_action('after_wp_tiny_mce', 'bolo_after_wp_tiny_mce');

function bolo_after_wp_tiny_mce($mce_settings) {

?>

QTags.addButton( 'download', '下载按钮', "[download]下载地址[/download]" );

function bolo_QTnextpage_arg1() {

}

/*

* 后台登录页

* @M.J

*/

//Login Page style

function custom_login() {

//echo ''."\n";

echo ''."\n";

//echo ''."\n";

echo ''."\n";

}

add_action('login_head', 'custom_login');

//Login Page Title

function custom_headertitle ( $title ) {

return get_bloginfo('name');

}

add_filter('login_headertitle','custom_headertitle');

//Login Page Link

function custom_loginlogo_url($url) {

return esc_url( home_url('/') );

}

add_filter( 'login_headerurl', 'custom_loginlogo_url' );

//Login Page Footer

function custom_html() {

if ( akina_option('login_bg') ) {

$loginbg = akina_option('login_bg');

}else{

$loginbg = get_bloginfo('template_directory').'/images/hd.png';

}

echo ''."\n";

echo '

echo 'jQuery("body").prepend("

login_loading.gif\"
");'."\n";

echo 'jQuery(\'#bg\').children(\'img\').attr(\'src\', \''.$loginbg.'\').load(function(){'."\n";

echo 'resizeImage(\'bg\');'."\n";

echo 'jQuery(window).bind("resize", function() { resizeImage(\'bg\'); });'."\n";

echo 'jQuery(\'.loading\').fadeOut();'."\n";

echo '});';

echo ''."\n";

echo '

function verificationOK(){

var x, y, z = "verification";

var x=$(\'#loginform\').find(\'input[name="verification"]\').val();

//var x=document.forms["loginform"]["verification"].value; //原生js实现

var y=$(\'#registerform\').find(\'input[name="verification"]\').val();

var z=$(\'#lostpasswordform\').find(\'input[name="verification"]\').val();

if (x=="verification" || y=="verification" || z=="verification"){

alert("Please slide the block to verificate!");

return false;

}

}

$(document).ready(function(){

$( \'

» Slide to Verificate

\' ).insertBefore( $( ".submit" ) );

$(\'form\').attr(\'onsubmit\',\'return verificationOK();\');

$(\'a\').attr(\'style\',\'background-image: url('.akina_option('logo_img').'); \');

$(".forgetmenot").replaceWith(\'

Remember Me

\');

});

';

echo '

var startTime = 0;

var endTime = 0;

var numTime = 0;

$(function () {

var slider = new SliderUnlock("#slider",{

successLabelTip : "OK"

},function(){

var sli_width = $("#slider_bg").width();

$(\'#verification-slider\').html(\'\').append(\'\');

endTime = nowTime();

numTime = endTime-startTime;

endTime = 0;

startTime = 0;

// 获取到滑动使用的时间 滑动的宽度

// alert( numTime );

// alert( sli_width );

});

slider.init();

})

/**

* 获取时间精确到毫秒

* @type

*/

function nowTime(){

var myDate = new Date();

var H = myDate.getHours();//获取小时

var M = myDate.getMinutes(); //获取分钟

var S = myDate.getSeconds();//获取秒

var MS = myDate.getMilliseconds();//获取毫秒

var milliSeconds = H * 3600 * 1000 + M * 60 * 1000 + S * 1000 + MS;

return milliSeconds;

}

';

}

add_action('login_footer', 'custom_html');

//Login message

//* Add custom message to WordPress login page

function smallenvelop_login_message( $message ) {

if ( empty($message) ){

return '

You may try 3 times for every 5 minutes!

';

} else {

return $message;

}

}

//add_filter( 'login_message', 'smallenvelop_login_message' );

//Fix password reset bug >

function resetpassword_message_fix( $message ) {

$message = str_replace("

$message = str_replace(">", "", $message);

return $message;

}

add_filter( 'retrieve_password_message', 'resetpassword_message_fix' );

/*

* 评论邮件回复

*/

function comment_mail_notify($comment_id){

$mail_user_name = akina_option('mail_user_name') ? akina_option('mail_user_name') : 'poi';

$comment = get_comment($comment_id);

$parent_id = $comment->comment_parent ? $comment->comment_parent : '';

$spam_confirmed = $comment->comment_approved;

if(($parent_id != '') && ($spam_confirmed != 'spam')){

$wp_email = $mail_user_name . '@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));

$to = trim(get_comment($parent_id)->comment_author_email);

$subject = '你在 [' . get_option("blogname") . '] 的留言有了回应';

$message = '

b5a5d3281a08568fa1035c96759ffe8e.png

Dear ' . trim(get_comment($parent_id)->comment_author) . '

您有一条来自的回复

您在文章《' . get_the_title($comment->comment_post_ID) . '》上发表的评论:

'

. trim(get_comment($parent_id)->comment_content) . '

' . trim($comment->comment_author) . ' 给您的回复如下:

'

. trim($comment->comment_content) . '

hr

点击查看回复的完整內容

本邮件为系统自动发出,请勿直接回复

© '.date(Y).' '.get_option("blogname").'

';

$message = convert_smilies($message);

$message = str_replace("{{",'emoji',$message);

$message = str_replace('{UPLOAD}', 'https://i.loli.net/', $message);

$message = str_replace('[/img][img]', '[/img^img]', $message);

$message = str_replace('[img]', 'img%5D',%20'', $message);

$message = str_replace('[/img^img]', '" style="width:80%;display: block;margin-left: auto;margin-right: auto;">p><p>%24from%20=%20";

$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";

wp_mail( $to, $subject, $message, $headers );

}

}

add_action('comment_post', 'comment_mail_notify');

/*

* 链接新窗口打开

*/

function rt_add_link_target( $content ){

$content = str_replace('

// use the

$bits = explode( '

#update_option('memory_archives_list', $output);

}

echo $output;

}

/*

* 隐藏 Dashboard

*/

/* Remove the "Dashboard" from the admin menu for non-admin users */

function remove_dashboard () {

global $current_user, $menu, $submenu;

get_currentuserinfo();

if( ! in_array( 'administrator', $current_user->roles ) ) {

reset( $menu );

$page = key( $menu );

while( ( __( 'Dashboard' ) != $menu[$page][0] ) && next( $menu ) ) {

$page = key( $menu );

}

if( __( 'Dashboard' ) == $menu[$page][0] ) {

unset( $menu[$page] );

}

reset($menu);

$page = key($menu);

while ( ! $current_user->has_cap( $menu[$page][1] ) && next( $menu ) ) {

$page = key( $menu );

}

if ( preg_match( '#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'] ) &&

( 'index.php' != $menu[$page][2] ) ) {

wp_redirect( get_option( 'siteurl' ) . '/wp-admin/profile.php');

}

}

}

add_action('admin_menu', 'remove_dashboard');

/**

* Filter the except length to 20 words. 限制摘要长度

*

* @param int $length Excerpt length.

* @return int (Maybe) modified excerpt length.

*/

function GBsubstr($string, $start, $length) {

if (strlen($string) > $length) {

$str = null;

$len = 0;

$i = $start;

while ( $len < $length) {

if (ord(substr($string, $i, 1)) > 0xc0) {

$str .=substr($string, $i, 3);

$i+= 3;

}elseif (ord(substr($string, $i, 1)) > 0xa0) {

$str .= substr($string, $i, 2);

$i+= 2;

}else {

$str.=substr($string, $i, 1);

$i++;

}

$len ++;

}

return $str;

}else {

return $string;

}

}

function excerpt_length($exp) {

if (!function_exists('mb_substr')) {

$exp = GBsubstr($exp, 0, 80);

} else {

/*

* To use mb_substr() function, you should uncomment "extension=php_mbstring.dll" in php.ini

*/

$exp = mb_substr($exp, 0, 80);

}

return $exp;

}

add_filter( 'the_excerpt', 'excerpt_length' );

/*

* 后台路径

*/

/*

add_filter('site_url', 'wpadmin_filter', 10, 3);

function wpadmin_filter( $url, $path, $orig_scheme ) {

$old = array( "/(wp-admin)/");

$admin_dir = WP_ADMIN_DIR;

$new = array($admin_dir);

return preg_replace( $old, $new, $url, 1);

}

*/

function admin_style() {

wp_enqueue_style('admin-styles-fix-icon', get_site_url() . '/wp-includes/css/dashicons.css');

wp_enqueue_style('cus-styles-light', get_site_url() . '/wp-content/themes/Sakura/inc/css/dashboard-fix.css');

if ( get_user_option( 'admin_color' ) == "light" ) {

wp_enqueue_style('cus-styles-light', get_site_url() . '/wp-content/themes/Sakura/inc/css/dashboard-light.css');

}

}

add_action('admin_enqueue_scripts', 'admin_style');

function custom_register_admin_scripts() {

wp_enqueue_script( 'lazyload', 'https://cdn.jsdelivr.net/npm/lazyload@2.0.0-beta.2/lazyload.min.js' );

}

add_action( 'admin_enqueue_scripts', 'custom_register_admin_scripts' );

function custom_admin_js() {

echo '

window.οnlοad=function(){

lazyload();

try{

document.querySelector("#scheme-tip .notice-dismiss").addEventListener("click", function(){

location.href="?scheme-tip-dismissed'.BUILD_VERSION.'";

});

} catch(e){}

}

';

}

add_action('admin_footer', 'custom_admin_js');

/*

* 后台通知

*/

function notice_welcome() {

?>

}

// 首次登陆欢迎

function shapeSpace_register_add_meta($user_id) {

add_user_meta($user_id, '_new_user', '1');

}

add_action('user_register', 'shapeSpace_register_add_meta');

function shapeSpace_first_user_login($user_login, $user) {

$new_user = get_user_meta($user->ID, '_new_user', true);

if ($new_user) {

update_user_meta($user->ID, '_new_user', '0');

// do something for first login.. e.g., send a custom email

add_action( 'admin_notices', 'notice_welcome' );

}

}

add_action('wp_login', 'shapeSpace_first_user_login', 10, 2);

function recommend_light() {

$msg = 'Strongly recommend "Light" Scheme.';

if ( get_user_locale( get_current_user_id() ) == "zh_CN") {

$msg = '管理界面配色方案建议使用“明亮”。';

}

if ( get_user_locale( get_current_user_id() ) == "zh_TW") {

$msg = '管理色彩配置建議使用“明亮”。';

}

if ( get_user_locale( get_current_user_id() ) == "ja") {

$msg = '管理画面の配色「ライト」を使用することをお勧めします。';

}

if ( get_user_locale( get_current_user_id() ) == "ja-JP") {

$msg = '管理画面の配色「ライト」を使用することをお勧めします。';

}

$user_id = get_current_user_id();

if ( !get_user_meta( $user_id, 'scheme-tip-dismissed'.BUILD_VERSION ) ) {

echo '

'.$msg.'

';

}

}

if ( get_user_option( 'admin_color' ) != "light" ) {

add_action( 'admin_notices', 'recommend_light' );

}

function scheme_tip_dismissed() {

$user_id = get_current_user_id();

if ( isset( $_GET['scheme-tip-dismissed'.BUILD_VERSION] ) )

add_user_meta( $user_id, 'scheme-tip-dismissed'.BUILD_VERSION, 'true', true );

}

add_action( 'admin_init', 'scheme_tip_dismissed' );

// 阻止垃圾注册

add_action( 'register_post', 'codecheese_register_post', 10, 3 );

function codecheese_register_post( $sanitized_user_login, $user_email, $errors ) {

// Blocked domains

$domains = array( 'net.buzzcluby.com',

'buzzcluby.com',

'mail.ru',

'h.captchaeu.info',

'edge.codyting.com');

// Get visitor email domain

$email = explode( '@', $user_email );

// Check and display error message for the registration form if exists

if( in_array( $email[1], $domains ) )

$errors->add('invalid_email', __('ERROR: This email domain (@'.$email[1].') has been blocked. Please use another email.'));

}

// html 标签处理器

function html_tag_parser($content) {

if(!is_feed()) {

$content=preg_replace(

'//i',

"%5C%22%5C%242%5C%22\n

\$0",

$content

);

//Fancybox

/* Markdown Regex Pattern for Matching URLs:

* https://daringfireball.net/2010/07/improved_regex_for_matching_urls

*/

$url_regex ='(((http|https):\/\/)?(\w(\:\w)?@)?([0-9a-z_-]+\.)*?([a-z0-9-]+\.[a-z]{2,6}(\.[a-z]{2})?(\:[0-9]{2,6})?)((\/[^?#<>\/\\*":]*)+(\?[^#]*)?(#.*)?)?)';

//With Thumbnail: !{alt}(url)[th_url]

$content=preg_replace(

'/!\{([^\{\}]+)*\}\('.$url_regex.'\)\['.$url_regex.'\]/i',

'

data-caption="$1"

class="fancybox"

href="$2"

alt="$1"

title="$1">%2415

',

$content

);

//Without Thumbnail :!{alt}(url)

$content=preg_replace(

'/!\{([^\{\}]+)*\}\('.$url_regex.'\)/i',

'

data-caption="$1"

class="fancybox"

href="$2"

alt="$1"

title="$1">%242

',

$content

);

}

return $content;

}

add_filter('the_content', 'html_tag_parser'); //替换文章关键词

//add_filter( 'comment_text', 'html_tag_parser' );//替换评论关键词

/*

* QQ 评论

*/

// 数据库插入评论表单的qq字段

add_action('wp_insert_comment','sql_insert_qq_field',10,2);

function sql_insert_qq_field($comment_ID,$commmentdata) {

$qq = isset($_POST['new_field_qq']) ? $_POST['new_field_qq'] : false;

update_comment_meta($comment_ID,'new_field_qq',$qq); // new_field_qq 是表单name值,也是存储在数据库里的字段名字

}

// 后台评论中显示qq字段

add_filter( 'manage_edit-comments_columns', 'add_comments_columns' );

add_action( 'manage_comments_custom_column', 'output_comments_qq_columns', 10, 2 );

function add_comments_columns( $columns ){

$columns[ 'new_field_qq' ] = __( 'QQ' ); // 新增列名称

return $columns;

}

function output_comments_qq_columns( $column_name, $comment_id ){

switch( $column_name ) {

case "new_field_qq" :

// 这是输出值,可以拿来在前端输出,这里已经在钩子manage_comments_custom_column上输出了

echo get_comment_meta( $comment_id, 'new_field_qq', true );

break;

}

}

/**

* 头像调用路径

*/

add_filter( 'get_avatar', 'change_avatar', 10, 3 );

function change_avatar($avatar){

global $comment;

if( get_comment_meta( $comment->comment_ID, 'new_field_qq', true ) ){

$qq_number = get_comment_meta( $comment->comment_ID, 'new_field_qq', true );

return '😀';

}else{

return $avatar ;

}

}

// default feature image

function DEFAULT_FEATURE_IMAGE() {

if ( empty( akina_option('default_feature_image' )) ) {

return get_template_directory_uri().'/feature/index.php?'.rand(1,1000);

//return 'https://api.mashiro.top/feature/?'.rand(1,1000);

} else {

return akina_option('default_feature_image').'?'.rand(1,1000);

}

}

//code end

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值