{"repo": "2broear/2blog", "files": {"inc/theme_settings.php": {"e1c5fa24d51d17eb41603f84b07e1c7417ca537f": {"t": 1785746143.3300364, "n": 316885, "h": "4f594c6cea75eb26", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n }\n \n // 定时任务信息\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n $schedule_info = '';\n if ($scheduled_ts) {\n $schedule_info = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() . ' -> ' . $scheduled_ts . ')
';\n echo \"$schedule_info\";\n }\n \n // 输出控制栏\n $rest_update_url = rest_url('rss-feeds/v1/category/' . $link_slug . '/update');\n $nonce = wp_create_nonce('wp_rest'); // REST API 需要 nonce(若已登录 cookie 认证可省略,但为了安全建议加上)\n ?>\n

\n ()\n \" \n data-limit=\"\" \n data-api=\"\"\n data-nonce=\"\">\n reload *\n \n \" \n class=\"small-text reloadLimit\" \n value=\"\" \n min=\"1\" max=\"99\" \n style=\"max-width: 3em;margin-left: 15px;border-radius: 50px;border-top-right-radius: 0;\" />\n

\n \n 暂无 RSS 缓存,请点击上方「reload」按钮生成。

';\n }\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项
若使用原生评论,可前往 讨论->评论分页 配置 默认显示评论页面->尾页,在每页顶部显示评论->新的 为最新评论,相反则为旧时评论

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n 关闭上方Ajax 评论时此项将自动关闭';\n // if (get_option($opt) && !$premise) {\n // update_option('site_ajax_comment_paginate', '');\n // } else {\n // $tips .= '

⚠️开启后建议配置默认显示评论页面->新的

';\n // // update_option('comment_order', 'desc');\n // }\n $check = '';//!$premise ? 'disabled' : '';\n echo '';\n ?>\n
— 自动填充\n

开启后当用户输入邮箱后,即时更新用户 gravatar 头像,若该用户已有留言还可自动填充该用户其他信息

自动填充';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI Powered Tools AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

AI Powers';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— AI SummaryPOST\n

开启文章AI总结,可选开启页面

AI Summary';\n ?>\n
— AI SpamerANTI\n

开启评论区AI垃圾评论审核(使用AI摘要相同TOKEN模型

AI AntiSpam';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(AI Summary)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

TypeWriter';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

ShuffleWords';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "4ce49aaf619c921eb4f69aa797cdf854dc4513fd": {"t": 1785760135.3238156, "n": 316885, "h": "4f594c6cea75eb26", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n }\n \n // 定时任务信息\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n $schedule_info = '';\n if ($scheduled_ts) {\n $schedule_info = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() . ' -> ' . $scheduled_ts . ')
';\n echo \"$schedule_info\";\n }\n \n // 输出控制栏\n $rest_update_url = rest_url('rss-feeds/v1/category/' . $link_slug . '/update');\n $nonce = wp_create_nonce('wp_rest'); // REST API 需要 nonce(若已登录 cookie 认证可省略,但为了安全建议加上)\n ?>\n

\n ()\n \" \n data-limit=\"\" \n data-api=\"\"\n data-nonce=\"\">\n reload *\n \n \" \n class=\"small-text reloadLimit\" \n value=\"\" \n min=\"1\" max=\"99\" \n style=\"max-width: 3em;margin-left: 15px;border-radius: 50px;border-top-right-radius: 0;\" />\n

\n \n 暂无 RSS 缓存,请点击上方「reload」按钮生成。

';\n }\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项
若使用原生评论,可前往 讨论->评论分页 配置 默认显示评论页面->尾页,在每页顶部显示评论->新的 为最新评论,相反则为旧时评论

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n 关闭上方Ajax 评论时此项将自动关闭';\n // if (get_option($opt) && !$premise) {\n // update_option('site_ajax_comment_paginate', '');\n // } else {\n // $tips .= '

⚠️开启后建议配置默认显示评论页面->新的

';\n // // update_option('comment_order', 'desc');\n // }\n $check = '';//!$premise ? 'disabled' : '';\n echo '';\n ?>\n
— 自动填充\n

开启后当用户输入邮箱后,即时更新用户 gravatar 头像,若该用户已有留言还可自动填充该用户其他信息

自动填充';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI Powered Tools AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

AI Powers';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— AI SummaryPOST\n

开启文章AI总结,可选开启页面

AI Summary';\n ?>\n
— AI SpamerANTI\n

开启评论区AI垃圾评论审核(使用AI摘要相同TOKEN模型

AI AntiSpam';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(AI Summary)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

TypeWriter';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

ShuffleWords';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "e8717982855d2c16654e239b6775672ef0765507": {"t": 1785760137.68426, "n": 316771, "h": "378d8687527238db", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n }\n \n // 定时任务信息\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n $schedule_info = '';\n if ($scheduled_ts) {\n $schedule_info = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() . ' -> ' . $scheduled_ts . ')
';\n echo \"$schedule_info\";\n }\n \n // 输出控制栏\n $rest_update_url = rest_url('rss-feeds/v1/category/' . $link_slug . '/update');\n $nonce = wp_create_nonce('wp_rest'); // REST API 需要 nonce(若已登录 cookie 认证可省略,但为了安全建议加上)\n ?>\n

\n ()\n \" \n data-limit=\"\" \n data-api=\"\"\n data-nonce=\"\">\n reload *\n \n \" \n class=\"small-text reloadLimit\" \n value=\"\" \n min=\"1\" max=\"99\" \n style=\"max-width: 3em;margin-left: 15px;border-radius: 50px;border-top-right-radius: 0;\" />\n

\n \n 暂无 RSS 缓存,请点击上方「reload」按钮生成。

';\n }\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项
若使用原生评论,可前往 讨论->评论分页 配置 默认显示评论页面->尾页,在每页顶部显示评论->新的 为最新评论,相反则为旧时评论

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️开启后会自动忽视评论分页配置中的 默认显示评论页面

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— 自动填充\n

开启后当用户输入邮箱后,即时更新用户 gravatar 头像,若该用户已有留言还可自动填充该用户其他信息

自动填充';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI Powered Tools AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

AI Powers';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— AI SummaryPOST\n

开启文章AI总结,可选开启页面

AI Summary';\n ?>\n
— AI SpamerANTI\n

开启评论区AI垃圾评论审核(使用AI摘要相同TOKEN模型

AI AntiSpam';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(AI Summary)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

TypeWriter';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

ShuffleWords';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "d81d066a090bbaee4421f0c5891386e9d9762d9c": {"t": 1785760140.0415077, "n": 316797, "h": "58a8ed0d02e8d0e3", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI Powered Tools AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

AI Powers';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— AI SummaryPOST\n

开启文章AI总结,可选开启页面

AI Summary';\n ?>\n
— AI SpamerANTI\n

开启评论区AI垃圾评论审核(使用AI摘要相同TOKEN模型

AI AntiSpam';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(AI Summary)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

TypeWriter';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

ShuffleWords';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "667fa23b085f0909f5ed7e763e25a2f51b0ba3d6": {"t": 1785760142.1540778, "n": 316789, "h": "420102757f8d9f90", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI Powered Tools AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

AI Powers';\n ?>\n
— AI SummaryPOST\n

开启文章AI总结,可选开启页面

AI Summary';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— AI SpamerANTI\n

开启评论区AI垃圾评论审核(使用AI摘要相同TOKEN模型

AI AntiSpam';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(AI Summary)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

TypeWriter';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Type';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "fad4cfdf32ee4dcc294359220a8b55235c8a3d30": {"t": 1785760144.6153738, "n": 316788, "h": "4407809abf7f5ede", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI Powered Tools AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

AI Tools';\n ?>\n
— AI SummaryPOST\n

开启文章AI总结,可选开启页面

AI Summary';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— AI SpamerANTI\n

开启评论区AI垃圾评论审核(使用AI摘要相同TOKEN模型

AI AntiSpam';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(AI Summary)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

TypeWriter';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Type';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "88d4c85b584f5bd973ed982ef6b1c30b139d4779": {"t": 1785760146.4879758, "n": 316814, "h": "8aa096281248e751", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— AI Comments2BER\n

开启评论区AI助手,评论“@2BER”激活。支持文章总结、评论区留言交互、多轮对话等(使用AI摘要相同TOKEN模型

2BER AI';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"foreverblog\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "35fa477ceb753553c4090cabc0d0162af2ec489d": {"t": 1785760148.9468977, "n": 315636, "h": "9022eeae4e71526d", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
好物展厅 - 全景模型\n 自定义3d全景模型数据,示例数据已预设,参数:@title 模型名称;@img 模型缩略图;@url 模型链接地址

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI 人格\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— 测试数据\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - MBTI 全景\n

开启后可指定web3d模型加载全景(该区域默认使用关于-背景视频

全景模型';\n ?>\n
— 全景模型链接\n MBTI全景模型(参数)链接(可指定模型及context

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "7d57bf42a697fde07b6bdcbcb9cd311884509955": {"t": 1785760174.3701785, "n": 314834, "h": "e1113b97c53bcbdb", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
Progresser PageLoad\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Progresser Document\n

站点顶部进度条,开启后全站使用(⚠️注:进度条为文档滚动进度,而非NProgress页面进度条

DProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyImage';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimizer';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
交互 - 导航滑块\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

导航滑块';\n ?>\n
交互 - 磁吸效果\n

开启PC页面元素“磁吸”效果,可使用 magnetic 类名启用自定义元素(全局启用区域:导航metaBox、页面底部Title、左上角Logo、右下角进度球

磁吸元素';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "4bd8a7701821818bdf7801d596e7cb45b531ad2f": {"t": 1785760176.730992, "n": 313172, "h": "f947b3eb8e9d47dc", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\nname = 'Index';\n $templates_index->slug = '/';\n $templates_info = array(\n '/' => $templates_index,\n 'news' => get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progresser\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
数据库冗余 清理优化\n

开启刷新页面后可清理其他数据库冗余文件(任何涉及数据库操作务必提前备份!

WPDB Optimization';\n ?>\n
— 文章历史修订版本\n

清理储存于 wp_posts 表中存放的所有文章(revisions)历史修订版本(此项不会清理上传附件或特殊文章类型

\n ';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
动画 - 打字机效果\n

启用位于页面背景上的文字打字机效果,可多选开启页面(若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

打字动画';\n ?>\n
— 开启页面(多选)\n slug.',';\n // update_option($opt, $preset_str);\n // $value = $preset_str;\n // }\n echo '

指定开启动画页面,使用逗号“ , ”分隔(默认开启留言板页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if (isset($option->error)) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "87397da47e56fd3909b4cca52eb094dde253b130": {"t": 1785760178.613567, "n": 307889, "h": "17be42770435e7e2", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progresser\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号(外链地址)\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n echo '

重写 twikoo.min.js 文件版本号(默认使用主题文件,版本号1.6.4

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "e47c9805d1b68a985a19b2ce81898ace0feb8c0d": {"t": 1785760180.4373193, "n": 305826, "h": "b3f5fec4b573c460", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n

2BLOG 主题预设 </>

第三方 LeanCloud 数据储存服务将于 2027 停服,相关设置将停用 (此主题需开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可使用 body.dark 或 prefers-color-scheme 自适应深色样式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progresser\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论\n

开启后免刷新页面评论,实现无感评论及回复等操作

AJAX Comments';\n ?>\n
— Ajax 翻页\n ⚠️注:可前往 讨论->评论分页 中配置 默认显示评论排序,启用此项后建议默认显示 尾页 顶部显示 新的

';\n }\n $check = !$premise ? 'disabled' : '';\n echo '';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n if ($lists) {\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n if ($links_array) {\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "ca0a3844a0a5a96d8db4c0b82ed2577b06c4ec42": {"t": 1785760183.0727518, "n": 307599, "h": "f0beefbc7714328a", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可参照默认值 body.dark 样式适应深色模式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progresser\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组,使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频(缺省默认使用预设全景预览

\n \n \" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" placeholder=\"选择媒体文件\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航 / 列表\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.','.$async_opts[3]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

展示在首页的导航卡片及对应文章列表,可多选(默认选择前四个

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - TECH 单栏BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

TECH';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "3e9f423c7025081c42ed3070da5293f81cbca879": {"t": 1785760187.2709596, "n": 305583, "h": "b5c9c2cff6419453", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
;--block-two: ;--block-three: ;--block-four: ;\">\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可参照默认值 body.dark 样式适应深色模式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用(默认站点首页预览

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progresser\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "10268354cd844cf6b21ac74b42c4ad4a1b9642cd": {"t": 1785760189.1708438, "n": 304231, "h": "196e59c5d47488b0", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,支持颜色选择器自动取色(后台即时生效,预设默认值 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
主题色块 Blocks\n

自定义一组色值,使用逗号“,”间隔,支持颜色选择器自动取色(后台即时生效,此项同时应用于设置页面及首页卡片色块,预设默认值 + 主题色

\n \n \"/>\n
    \n ';\n }\n ?>\n
\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可参照默认值 body.dark 样式适应深色模式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点描述\n \n
站点关键词\n \n \n
\n
\n
\n

\">02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progresser\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

邮件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

\">03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— 打字机效果\n

使用打字机效果填充摘要文本,可能的 CLS 影响

Words Typer';\n ?>\n
— 混淆打字文本\n

一次性加载混淆文本,避免频繁更新页面造成 CLS 性能影响

Shuffle Words';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

\">04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

\">05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "41657d2b9bfa3457df1ac6074d628ffa3e58a23a": {"t": 1785760191.7161067, "n": 300615, "h": "51982e4f020cfa31", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function the_panel_theme() {\n if (!get_option('site_darkmode_switcher')) return;\n $fixed_theme = get_option('site_darkmode_fixed');\n if ($fixed_theme) {\n echo $fixed_theme;\n return;\n }\n echo isset($_COOKIE['theme_mode_panel']) ? $_COOKIE['theme_mode_panel'] : '';\n }\n function auto_panel_theme() {\n ?>\n \n \n
\">\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
随机主题\n

根据自定义颜色值,访问页面时将随机调用其中一项作为主色调

RandTheme';\n ?>\n
— 色块数组\n

自定义一组颜色值(同时应用于设置页面与首页色块),使用逗号“,”间隔(留空默认使用预设值用于背景及首页色块

\n \n \"/>\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可参照默认值 body.dark 样式适应深色模式

';\n ?>\n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

\">02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progress Bar\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Google Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式
(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

DarkMode';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
— 固定模式FixedTheme\n '浅色', 'value'=>'light'),\n array('name'=>'深色', 'value'=>'dark'),\n );\n echo '';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

\">03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示型文章';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

\">04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

\">05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "4f793d29c11b4ef49a4b786c350513e203e95e42": {"t": 1785760193.7722273, "n": 292970, "h": "47cd62a386b2c9b0", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n
\">\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\">\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点 LOGO\n

站点 logo 图片,开启后可指定深色显示LOGO(默认显示文字类型的站点名称SVG(XTy),可自适应深色显示模式

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认SVG

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO,留空默认SVG

';\n ?>\n
— LOGO 矢量代码SVG\n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n';\n if(!$value) update_option($opt, $preset);else $preset=$value;\n echo '

站点 LOGO 矢量代码(注:开启任意图片LOGO后此项失效,可参照默认值 body.dark 样式适应深色模式

';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progress Bar\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Google Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

自动模式';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示型文章';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "8f3fccfa2cb1d5a674d1464ab4e21aa718065c98": {"t": 1785760196.228585, "n": 287904, "h": "85e751a57ca7d4ab", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点 LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
Progress Bar\n

站点顶部加载条,开启后全站使用

NProgress';\n ?>\n
Google Adsense\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
深色模式\n

开启后将根据时段自动切换主题(默认晚17至早9
⚠️注意:主题默认支持根据系统配置自动设置主题深浅色(同时支持手动切换)。此项启用时,将按照此处配置的深浅色时段自动配置显示模式(若当前系统为深色模式,此时切换系统为浅色将无法自动生效,因为此处权配置显示时段重高于系统默认配置

自动模式';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示型文章';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
Memos 备忘录 \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
AI 文章摘要 AI \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "3edb7484a9afee85e314af0679f00935f9702c67": {"t": 1785760198.0881064, "n": 285232, "h": "8afc25e011613328", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点 LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航 Icon\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
导航 Slider\n

站点导航跟随模块,开启后透明主题色块可跟随鼠标移动标记链接(暂仅支持PC端

Slider';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
深色模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动模式';\n ?>\n
— 开启时间\n 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n 关闭时间(大于1点小于12点

';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(Twikoo 默认支持 trunstile 配置

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示型文章';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
动画 - 滚动加载\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
动画 - 数字计数\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "50478d981949b54208fae918dcfda2f310dc8517": {"t": 1785760200.9676566, "n": 284249, "h": "615a39f6a9b6803a", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value) {\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt='') {\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value) {\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info, $cached_post;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点 LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航 ICON\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
深色模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(暂不支持 twikoo

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental Feats';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示型文章';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $tag_clouds, $rss_feeds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if (get_option($opt)) {\n // global $cached_post;\n if (!$cached_post) {\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n }\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 RSS 摘要\n

使用文章AI摘要填充 rss 页面 feed 内容(启用此项可减少页面缓存数据调用

AI RSS';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "3a1c046d3ab8bcd34e7d4353766c4861f8213768": {"t": 1785760203.9803853, "n": 282759, "h": "6b14da317ff84de7", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 LeanCloud 第三方 BAAS 数据储存服务 (使用此主题需一定开发经验)

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASIC INFO

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点 LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航 ICON\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除目录';\n ?>\n
— URL 尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

移除斜杠';\n ?>\n
搜索/标签 页面样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

多样搜索';\n ?>\n
— 搜索类型包含(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
多元导航分类\n

多元化(样式)展示分类导航名称、描述及背景内容

MetaBox';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
深色模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
图片懒加载\n

开启文章/部分页面图片使用 Lazyload 懒加载(默认关闭

LazyLoad';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN 配置';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用已配置的 图片加速域名 加速站内指定位置视频,常用于超小型文件(特殊配置:article:文章视频,sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 默认预览\n

开启后自动捕获当前页面所有未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频海报';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF 预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(暂不支持 twikoo

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

登录校验';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

'; //\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
评论邮件提醒\n

WP自带评论审核提醒邮件(博主,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES CONFS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
试验性内容Exp\n

试验性(全站)UI/UE 内容(开启后可体验最新页面样式内容

Experimental Feats';\n ?>\n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

快捷导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型文章分类\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章将 默认不显示文章链接 (只可在归档中查阅

展示型文章';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

TOC 目录';\n ?>\n
— 索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

WEBLOG';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG 栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

禁用缓存';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
缓存时效:在此处开启缓存后,某些页面设定后可能无法立即生效!需等待缓存更新或在此取消对应缓存

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

Cached Posts';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

Memos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 手动加载卡片信息 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

按需加载';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideLink';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

年度报表';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

分类文章';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER SETTINGS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n 萌国ICP备案号(数字

';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n 沟通直链(单页

';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n CNZZ 统计链接

';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "0875ff20a11100df6cc5856b5978cdbfc98bd3a5": {"t": 1785760229.632318, "n": 278006, "h": "2d5d9d7e5d3a4f9f", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSSFeeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMON CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点 LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO 图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO 图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航 ICON\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF预览';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(暂不支持 twikoo

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

LoginVerify';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

Keep Update';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 友链订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面。注:rss订阅为wp后台应用缓存,tag云为组件缓存
注:某些页面开启缓存后,某些设定可能会因为缓存原因导致无法立即生效!需等待缓存更新或取消缓存页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步文章页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS 卡片\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 按需加载 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

Manual';\n ?>\n
友链 - 滑块动画\n

开启后隶属“其他”分类的链接盒子会自动使用滑动动画,经过时暂停动画,指定时间内未操作将继续返回上次位置滑动

SlideBox';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

ALIVE STATES';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "96e1f93917f3dfb4d4c58ea19b4b0f170c2dc9e3": {"t": 1785760231.58656, "n": 275252, "h": "3cdfd953705d604e", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSSFeeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true with auth-param\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMONLY CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航图标\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF动图';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(暂不支持 twikoo

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— Turnstile Login\n

开启后登陆 WordPress 后台需要通过 turnstile 验证(可能造成移动端登录失败?

Login Verify';\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网评论屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

AlwaysUpdate';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页广告';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏广告';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

文章 AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS卡片流\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 按需加载 \n

开启后可在前端手动加载指定友链RSS内容(默认关闭

Manual';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

RSS ALIVE STATE';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "5f3713a22ec6078e438b0a6eabcfbbcd09a5b793": {"t": 1785760233.6542127, "n": 271817, "h": "1b113a9e8c44e02c", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMONLY CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航图标\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF动图';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(暂不支持 twikoo

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网评论屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

AlwaysUpdate';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页广告';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏广告';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

文章 AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - RSS卡片流\n

开启后默认加载RSS卡片信息流,可选开启前端手动加载卡片信息(

RSS 卡片';\n ?>\n
— 按需加载 \n

开启后可前端指定加载友链RSS卡片内容(默认关闭

ManualLoad';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

友链状态';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

RSS ALIVE STATE';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "89e23435fac4a5bd3a456925d0d2148c5c7bf39e": {"t": 1785760236.5618675, "n": 270151, "h": "6ead3829c05e6829", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n $link_api = get_api_refrence('rss'); //, true\n // $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMONLY CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航图标\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF动图';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
— Turnstile Comments\n 可选开启评论审核系统(暂不支持 twikoo

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($comments_options as $option) {\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
评论系统 \n

可选第三方评论系统(开启后需填配置项

';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网评论屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

AlwaysUpdate';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页广告';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏广告';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

文章 AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

Link State';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

RSS ALIVE STATE';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "af8842dbb6e532159b43c4dc3a951ad758ac3907": {"t": 1785760238.6795402, "n": 268878, "h": "910ba3aa01afb72c", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n // $link_api = get_api_refrence('rss', true); // failed to fetch\n $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMONLY CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航图标\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF动图';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
Cloudflare Turnstile\n

启用 Cloudflare Turnstile 校验访客信息(开启后默认检测评论访客信息,支持 wordpress 及第三方 valine 评论系统,暂不支持 twikoo,后续支持可选页面检测

Turnstile ';\n ?>\n
— Turnstile SiteKey\n Turnstile SiteKey

';\n ?>\n
— Turnstile SecretKey\n Turnstile SecretKey(留空将导致三方评论回调验证失败!

';\n ?>\n
评论系统 \n 'Waline', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n // );\n if(!$value) update_option($opt, $arrobj[0]);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
— Ajax 评论加载\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 关键词屏蔽common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 境外 IP 屏蔽common\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网评论屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

AlwaysUpdate';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页广告';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏广告';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n latlng: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n }\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"latlng\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"latlng\" : \"39.921489,116.486409\",\n }\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

文章 AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

Link State';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

RSS ALIVE STATE';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "44266bd8cc61e99404a69008fdc5fac3fb4c6de0": {"t": 1785760263.4407527, "n": 267469, "h": "303c16f1e4be9a3e", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n // $link_api = get_api_refrence('rss', true); // failed to fetch\n $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMONLY CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航图标\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF动图';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
评论系统 \n 'Waline', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n // );\n if(!$value) update_option($opt, $arrobj[0]);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
— Ajax 评论支持\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.all.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 屏蔽关键词common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 屏蔽境外 IPcommon\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网评论屏蔽';\n ?>\n
— 屏蔽境外 IPcommon\n

阻止所有非大陆、香港、台湾的境外IP访问网站(!api performance issue

外网访问屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

AlwaysUpdate';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页广告';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏广告';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n lnglat: \"39.957363077042,116.412789588355\",\n position: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n },\n {\n lnglat: \"39.908802,116.397502\",\n position: \"39.908802,116.397502\",\n thumbnail: \"\",\n content: \"\",\n context: \"其他\",\n district: \"其他区\",\n city: \"北京\",\n },\n ],\n // 配置标记区\n district: {\n \"北京\": {\n \"lnglat\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"lnglat\" : \"39.921489,116.486409\",\n },\n \"其他区\": {\n \"lnglat\" : \"39.908802,116.397502\",\n },\n }\n};';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

文章 AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

Link State';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

RSS ALIVE STATE';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}, "05186a067bc5cd2fdf4585b56825057a096f6358": {"t": 1785760266.8524327, "n": 267593, "h": "80575f571b81e917", "c": "get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n if (current_filter() == 'category_edit_form_fields') { //分类页详情(修改)\n ?>\n \n \n \n \n term_id, 'seo_image', true)); ?>\" id=\"term_fields[seo_image]\" name=\"term_fields[seo_image]\" class=\"upload_field\">\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n term_id, 'seo_order', true);\n if(!$seo_order){\n echo $term->term_id;\n update_term_meta($term->term_id, 'seo_order', $term->term_id);\n }else{\n echo esc_attr($seo_order);\n }\n ?>\" id=\"term_fields[seo_order]\" name=\"term_fields[seo_order]\">\n
\n term_group; ?>\">Lower Number for Front Ranking(auto orderby term_id: '.$term->term_id.')download-category:1/2/3'); ?>\n \n \n \n \n \n term_id, 'seo_title', true)); ?>\" id=\"seo_title\" name=\"seo_title\">
\n \n \n \n \n \n \n term_id, 'seo_keywords', true)); ?>\" id=\"seo_keywords\" name=\"seo_keywords\">
\n \n \n \n \n \n \n
\n \n \n \n\t\n

Page Sync Options

\n
\n \n \n \n

\n
\n \n \n \n \n \n \n \n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n
\n \n \n

\n
\n $value) {\n update_term_meta($term_id, $key, sanitize_text_field($value));\n }\n }\n // Save the fields values, using our callback function\n // if you have other taxonomy name, replace category with the name of your taxonomy. ex: edited_book, create_book\n add_action('edited_category', 'wcr_save_category_fields', 10, 2);\n add_action('create_category', 'wcr_save_category_fields', 10, 2);\n \n \n /* ------------------------------------------------------------------------ *\n * 分类与页面同步更新通信\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/theme_sync.php');\n /* ------------------------------------------------------------------------ *\n * 自定义文章排序 column(编辑、快速、批量编辑文章页)\n * ------------------------------------------------------------------------ */\n load_theme_partial('/inc/wp_column.php');\n /* ------------------------------------------------------------------------ *\n * WordPress Custom Post Type\n * Register the Product post type with a Dashicon.\n * https://developer.wordpress.org/resource/dashicons\n * @see register_post_type()\n * ------------------------------------------------------------------------ */\n function wpdocs_create_post_type() {\n register_post_type( 'inform',\n array(\n 'labels' => array(\n 'name' => __( '公告', 'textdomain' ),\n 'singular_name' => __( '新公告', 'textdomain' ),\n 'add_new' => '新公告',\n 'add_new_item' => '添加公告(仅显示标题)',\n 'edit_item' => '编辑公告',\n 'new_item' => '新公告',\n 'all_items' => __('所有公告'),\n 'view_item' => '查看公告',\n 'search_items' => '搜索公告',\n 'not_found' => '没有找到有关公告',\n 'not_found_in_trash' => '回收站里面没有相关公告',\n 'parent_item_colon' => '',\n 'menu_name' => '公告',\n ),\n 'public' => true,\n 'has_archive' => true,\n 'menu_icon' => 'dashicons-controls-volumeon',\n // 'description'=> '自定义的内容类型',\n // 'public' => true,\n // 'publicly_queryable' => true,\n // 'show_ui' => true,\n // 'show_in_menu' => true,\n // 'query_var' => true,\n // 'rewrite' => true,\n // 'capability_type' => 'post',\n // 'has_archive' => true,\n // 'hierarchical' => false,\n 'menu_position' => 5,\n // 'menu_icon' => 'dashicons-admin-post',\n // 'taxonomies'=> array('post_tag'),\n // 'supports' => array('title','editor','author','thumbnail','excerpt','comments')\n )\n );\n }\n add_action( 'init', 'wpdocs_create_post_type', 0 );\n \n // 新增(顶级)主菜单/子菜单/图标\n add_action('admin_menu','add_settings_menu', 1);\n function add_settings_menu() {\n // add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator', __FILE__, 'my_function_menu', false, 100);\n // add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');\n add_menu_page(__('2BLOG - 主题设置页面'), __('2BLOG 主题设置'), 'read', '2blog-settings', 'add_options_submenu'); // 创建新的顶级菜单\n add_action( 'admin_init', 'register_mysettings' ); // 调用注册设置函数\n }\n \n add_action('admin_menu','add_settings_menus', 0);\n $RSS_PAGE_NAME = 'rss-feeds';\n function add_settings_menus() {\n add_menu_page(__('2BLOG - RSS 订阅聚合'), __('RSS 友链订阅'), 'read', $GLOBALS['RSS_PAGE_NAME'], 'add_options_submenu_rss', 'dashicons-rss'); // 创建新的顶级菜单\n }\n function add_options_submenu_rss() {\n?>\n \n \n

RSS Feeds

\n
\n \n
\n
\n slug;\n $link_marks = get_site_bookmarks($link_slug);\n ?>\n
\">\n lastUpdate) ? $output_data[0]->lastUpdate : '0000-00-00';\n // $link_api = get_api_refrence('rss', true); // failed to fetch\n $link_api = get_plugin_refrence('rss', true);\n date_default_timezone_set('Asia/Shanghai');\n // print_r('(' . date('Y-m-d H:i:s', strtotime('today 06:00 Asia/Shanghai')) . ') ' . strtotime('today 06:00 Asia/Shanghai'));\n // print_r(wp_get_schedules());\n // wp_clear_scheduled_hook('scheduled_rss_feeds_updates_hook');\n $scheduled_ts = wp_next_scheduled('scheduled_rss_feeds_updates_hook');\n if($scheduled_ts) {\n // wp_unschedule_event($scheduled_ts, 'scheduled_rss_feeds_updates_hook');\n $scheduled_ts = 'Scheduled updates: ' . date('Y-m-d H:i:s', $scheduled_ts) . ' (' . time() .' -> ' . $scheduled_ts . ')
';\n print_r(\"$scheduled_ts\");\n }\n $reload_limits = get_option('site_rss_update_count', 3);\n echo \"

$caches_name ($output_date) reload $link_slug * 

\"; //\n }\n }\n // $output_json length will be 0 if non-caches loaded\n if(strlen($output_json)===0 || !$output_sw) {\n // $output_array = array();\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n $rss_url = $link_mark->link_rss;\n if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark);\n }\n }\n \n // fetch_rss_feeds_via_url plus array_chunk limits\n $output_json = parse_rss_data($subscribed_urls, $output_limit, $output_chunk);\n \n if($output_json && $output_sw) {\n echo 'updating caches..';\n update_option($caches_name, wp_kses_post(preg_replace( \"/\\s(?=\\s)/\",\"\\1\", $output_json )));\n // update_option($caches_name, $output_json);\n } else {\n if($caches_sw) {\n // if (in_array('rssfeeds', explode(',', $caches_inc)))\n echo '

No rss feeds/caches found on category ' . $link_slug . ' or cache disabled

';\n }\n }\n }\n $subscribed_urls = array();\n foreach ($link_marks as $link_mark) {\n // $rss_url = $link_mark->link_rss;\n // if ($rss_url && $link_mark->link_visible==='Y') {\n array_push($subscribed_urls, $link_mark->link_url);\n // }\n }\n // print_r($output_json);\n // print_r('
');\n                                // print_r($subscribed_urls);\n                                // print_r('
');\n $output_data = json_decode($output_json);\n the_rss_feeds($output_data);\n ?>\n
\n \n
\" data-path=\"\" data-nonce=\"\" data-defaults='1'>\n

📜 查阅日志记录 📑

\n \n \n \n

\n
\n
\n get_cat_by_template('news'),\n 'notes' => get_cat_by_template('notes'),\n 'weblog' => get_cat_by_template('weblog'),\n 'acg' => get_cat_by_template('acg'),\n 'guestbook' => get_cat_by_template('guestbook'),\n 'about' => get_cat_by_template('about'),\n '2bfriends' => get_cat_by_template('2bfriends'),\n 'download' => get_cat_by_template('download'),\n 'footprints' => get_cat_by_template('footprints'),\n 'archive' => get_cat_by_template('archive'),\n 'ranks' => get_cat_by_template('ranks'),\n 'privacy' => get_cat_by_template('privacy'),\n 'goods' => get_cat_by_template('goods'),\n );\n function category_options($value){\n // global $cats;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n if(!empty($cats)){\n foreach($cats as $the_cat){\n $cats_id = $the_cat->term_id;\n echo '';\n $catss = get_categories(meta_query_categories($cats_id,'ASC','seo_order'));\n if(!empty($catss)){\n foreach($catss as $the_cats){\n $catss_id = $the_cats->term_id;\n echo ''; //  \n $catsss = get_categories(meta_query_categories($catss_id,'ASC','seo_order'));\n if(!empty($catsss)){\n foreach($catsss as $the_catss){\n $catsss_id = $the_catss->term_id;\n echo ''; //    \n $catssss = get_categories(meta_query_categories($catsss_id,'ASC','seo_order'));\n if(!empty($catssss)){\n foreach($catssss as $the_catsss){\n $catssss_id = $the_catsss->term_id;\n echo ''; //      \n }\n }\n }\n }\n }\n }\n }\n }\n }\n function check_status($opt=''){\n if(!$opt) return;\n return get_option($opt) ? \"checked\" : \"closed\";\n }\n function output_article_opts($opt, $value){\n global $templates_info;\n $article_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog']);\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($article_opts as $option){\n if ($option->error) continue;\n $opts_key = $option->name;\n $opts_val = $option->term_id;\n $checking = in_array($opts_val, $pre_array) ? 'checked' : '';\n echo '';\n }\n }\n function add_options_submenu() {\n global $templates_info;\n $cats = get_categories(meta_query_categories(0,'ASC','seo_order'));\n $img_cdn = custom_cdn_src('img', true);\n $cats_haschild = array();\n $cats_seclevel = array();\n foreach($cats as $the_cat){\n if(count(get_term_children($the_cat->term_id,$the_cat->taxonomy))>0) array_push($cats_seclevel, $the_cat); // has-child category only\n // array_push($cats_toplevel, $the_cat);\n if($the_cat->count>=1) array_push($cats_haschild, $the_cat); //push 1st category which has posts\n }\n?>\n
\n \n

2BLOG 主题预设 </>

主题部分页面提供 Leancloud 第三方 baas 数据储存服务

\n \n
\n \n
\n \n
\n \n \n \n
\n

01基本信息

BASICALLY INFOMATION

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
博主昵称\n

网站标题、底部描述、文章作者、来源等信息均会使用到此信息(默认站点名称)

\n \n \" placeholder=\"博主昵称\">\n
个人头像\n 个人头像,用于笔记栈、关于等页面(默认管理员邮箱 gravatar 头像

';\n ?>\n
背景图片\n 默认背景图,用于各页面调用背景图(默认随机 gravatar 背景图

';\n ?>\n
站点关键词\n \" placeholder=\"站点关键词\">\n
站点描述\n \n
\n
\n
\n

02通用控制

COMMONLY CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n

实验性功能默认关闭,开启可使用自定义关键字“slash”将分类别名重写为“/” 以达到隐藏当前层级,将子级作为同级输出的目的(启用后将自动同步分类层级到页面。启用此项请保证分类中不存在“/”别名分类,如访问错误请检查错误页面父级别名是否为“/”并修改

同步页面层级';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n term_id,$the_cat->taxonomy))>0) array_push($options, $the_cat); // has-child category only\n }\n ?>\n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
主题颜色\n

此选项将重写网站主题色及后台设置高亮,即时生效(默认 #eb6844

';\n ?>\n
站点LOGO\n

站点 logo 图片(默认显示文字类型的站点名称

LOGO';\n ?>\n
— LOGO图片链接(默认)\n 站点 LOGO 图片链接(应用于全站,留空默认预设LOGO

';\n ?>\n
— LOGO图片链接(深色)\n 站点 LOGO(深色)图片链接(应用于深色模式,默认上方LOGO

';\n ?>\n
导航图标\n

站点导航字体图标,导航别名默认为图标css类(暂不支持创建时手动选择

ICON';\n ?>\n
分类导航层级\n 页面 Header 头部分类导航层级(默认最大4级

';\n ?>\n
近期内容展示数量\n 应用于近期评论、排行等 无需分页 内容展示数量,可在 阅读 查看默认至多显示数量(*此项不应用于 posts_per_page 查询参数,可能造成分页 404

';\n ?>\n
地址栏 Category 目录\n

开启后移除 url 中自带的 category 目录(默认开启,模拟相同 slug 链接 page 页面

移除 CATEGORY';\n ?>\n
— 链接尾部斜杠\n

开启后移除站点 Permalink 超链接中的尾部\"/\",URL地址中的“/”需在 固定链接 中设置

去除 URL 斜杠';\n ?>\n
搜索/标签样式\n

搜索结果及标签内容展示列表样式,开启后将使用各页面数据列表样式(默认使用笔记栈列表样式

搜索列表样式';\n ?>\n
— 搜索结果类型(多选项)\n 指定搜索包含内容,使用逗号“ , ”分隔(默认 post 类型,可选 page(页面)及自定义选填类型

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
metaBox 元导航分类\n

多元化展示分类导航名称、描述及背景

多元分类导航';\n ?>\n
— 基础元分类(多选项)\n slug.','; //'notes,acg,';\n // if(!$value){\n // update_option($opt, $preset);\n // $value = $preset;\n // }\n echo '

需要应用元导航样式的分类别名,使用逗号“ , ”分隔(仅输出存在子分类的一级分类

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($cats_seclevel as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
— 图文元分类(多选项)\n 需要使用背景图片的元分类导航,使用逗号“ , ”分隔(仅可选上方“基础元分类”中已启用分类,注slash“/”需手动写入

';\n for($i=0;$i<$enabled_array_count;$i++){\n $slug = trim($enabled_array[$i]); // NO WhiteSpace\n if($slug){\n $new_category = get_category_by_slug($slug);\n if($new_category){\n $checking = strpos($value, $slug)!==false ? 'checked' : '';\n echo '';\n }\n }\n }\n echo '
';\n ?>\n
Gravatar 镜像源BaaS\n 'Gravatar', 'href'=>'//gravatar.com/'),\n array('name'=>'V2EX', 'href'=>'//cdn.v2ex.com/'),\n array('name'=>'Cravatar', 'href'=>'//cravatar.cn/'),\n array('name'=>'Geekzu', 'href'=>'//sdn.geekzu.org/'),\n array('name'=>'LOLI', 'href'=>'//gravatar.loli.net/'),\n array('name'=>'SEP', 'href'=>'//cdn.sep.cc/'),\n array('name'=>'2Bavatar', 'href'=>'//gravatar.2broear.com/'),\n );\n // $md5mail = md5(\"wapuu@wordpress.example\"); //get_bloginfo('admin_email')\n $mirror_parm = 'avatar/'.md5(get_bloginfo('admin_email', \"wapuu@wordpress.example\")).'?s=100';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
定时任务 - 执行时间\n 站点每日定时任务执行时间,包含rss、页面缓存、友链状态等更新任务(默认每天早晨 06:00 执行

';\n ?>\n
RSS 订阅分类(多选)\n count>=1) array_push($options, $the_cat); // has-content category only\n }\n echo '

指定输出站点 RSS 分类文章,使用逗号“ , ”分隔(feed将在任意文章更新后更新

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $slug = $option->slug;\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
RSS 拉取频率(小时)\n RSS 友链订阅 计划自动更新 feeds 频率(默认12小时/一天更新两次,修改后可刷新任务

 '; //以解锁操作\n ?>\n
RSS 更新数量(条目)\n RSS 友链订阅 拉取数量(默认3条

';\n ?>\n
Sitemap 站点地图\n

生成全站站点地图(默认启用,开启后可指定生成类型

SITEMAP';\n ?>\n
— 生成类型(多选)\n 指定 sitemap 生成内容,使用逗号“ , ”分隔(默认 post(文章)tag(标签)category(分类/即 page 页面

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option){\n $checking = in_array($option, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
Darkmode 暗黑模式\n

开启后将自动识别时段(晚17至早9)并切换主题为 darkmode 模式

自动深色模式';\n ?>\n
— 开启时间\n darkmode 开启时间(大于13点小于24点

';\n ?>\n
— 关闭时间\n darkmode 关闭时间(大于1点小于12点

';\n ?>\n
Lazyload 懒加载\n

开启文章/部分页面图片使用懒加载(默认关闭

图片懒加载';\n ?>\n
站点 CDN 加速\n

开启后可自定义cdn加速域名(需要配置 nginx 指定域名

CDN加速域名';\n ?>\n
— 图片加速域名\n

媒体库图片文件(存放于 wp-content/uploads 路径,此项需在提交修改前 更新数据库

\n
\n ';\n }\n ?>\n
\n ';\n ?>\n \"/>\n
— 文件加速域名\n

可选项,网站cdn(css、js)链接/标头(默认使用当前主题目录,可用于安全性考量

\n \"/>\n
— API 调用域名\n

此域名用于调用 plugin 目录内插件(留空默认调用根目录,开启后可以在下方显示 CDN Auth Sign 调用鉴权密钥

\n \"/>\n
— API Auth Sign\n 腾讯云CDN鉴权密钥(如 api 调用域名出现访问403可能是由于CDN服务器之前开启了鉴权但此项鉴权密钥尚未填写(无法判断远程服务器是否开启鉴权

';\n ?>\n
— 页面视频加速(多选)\n 开启后使用上方👆图片加速域名👆加速站内指定位置视频,常用于超小型文件(Article:文章视频,Sidebar:侧栏视频

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // print_r($options);\n foreach ($options as $option) {\n if (is_object($option) && $option->error) continue;\n $slug = is_string($option) ? strtolower($option) : strtolower($option->slug);\n $name = is_string($option) ? strtolower($option) : strtolower($option->name);\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
视频 Poster 海报\n

开启后自动捕获当前页面所有 未设置 autoplay 属性的视频生成并设置预览海报(仅部分页面启用,默认截取第一帧

视频预览';\n ?>\n
视频截图捕获(动态预览)\n $func (已开启)\" : \"$func (已关闭)\";\n }\n echo '';\n ?>\n
— 截图 Gif 预览\n

开启后上传视频时生成 gif 动图作用于视频海报(开启视频截图捕获后默认自动生成gif预览,此处仅控制 poster 属性

GIF动图';\n ?>\n
LeancloudBaaS\n

使用第三方云数据库(Serverless)接管日记、友链、公告等数据内容(需在 leancloud 中新建对应分类 slug 名称的同名CLASS类,必填项与第三方评论 valine 自动同步,开启后可单独控制 BaaS 页面数据开关

LeanCloud';\n ?>\n
— LBMS\n

\n LBMS 是基于 leancloud 开发的数据储存容器 /lbms\" target=\"_blank\">前往 LBMS 管理页面
\n

\n

需前往 Leancloud 控制台 设置对应 serverurl 并创建对应页面 slug 数据表(启用后将自动新建别名为“lbms”及“login”页面

\n 'LBMS管理后台', \n 'slug' => 'lbms',\n 'template' => 'inc/templates/pages/lbms.php'\n ),\n array(\n 'title' => 'LBMS登陆页面', \n 'slug' => 'lbms-login',\n 'template' => 'inc/templates/pages/lbms-login.php'\n ),\n );\n global $wpdb;\n foreach ($init_pages as $each_page){\n $slug = $each_page['slug'];\n $title = $each_page['title'];\n $check_page = $wpdb->get_var(\"SELECT * FROM $wpdb->posts WHERE post_name = '$slug' AND post_type = 'page'\");\n // unset($wpdb);\n if(!$check_page){\n // https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/\n $request_page->set_query_params(array(\n 'slug' => $slug,\n 'title' => $title,\n 'status' => 'private',\n 'template' => $each_page['template']\n ));\n $response = rest_do_request( $request_page );\n }\n }\n ?>\n
— APP IDsync\n

';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n 国内版二级域名可能出现的CORS跨域问题?点我查看

-->';\n ?>\n
— BaaS Switcher\n get_page_templates();\n if(count($templates)<=0){\n $templates = scan_templates_dir($templates);\n }\n foreach ($templates as $temp => $index){\n if(strpos($index, 'BaaS')!==false){\n array_push($baasarray, array($index=>$temp));\n $baastring .= $temp.',';\n }\n }\n $baasarray_count = count($baasarray);\n if(!$value){\n update_option($opt, $baastring);\n $value = $baastring;\n }\n $check = strpos($value, $inform)!==false ? 'checked' : '';\n echo '

手动指定需要启用 BaaS 的分类页面,使用逗号“ , ”分隔(默认全部开启,开启后将接管全站支持 LBMS 页面的 BaaS 数据来源

';\n for($i=0;$i<$baasarray_count;$i++){\n foreach ($baasarray[$i] as $option => $index){\n $checking = strpos($value, $index)!==false ? 'checked' : '';\n echo '';\n }\n }\n echo '
';;\n ?>\n
评论系统 \n 'Waline', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n // );\n if(!$value) update_option($opt, $arrobj[0]);else $preset=$value; //auto update option to default if unset\n echo '';\n ?>\n
— Ajax 评论支持\n

开启后免刷新页面评论(提交评论及回复

AJAX Comments';\n ?>\n
— Ajax 评论翻页\n

'.$tips.'

AJAX Pagination';\n ?>\n
— APP IDsync\n ';\n ?>\n
— APP KEYsync\n ';\n ?>\n
— SERVER URLsync\n ';\n ?>\n
— ServerChan\n 评论微信公众号提醒(server酱提供的评论微信提醒服务(每天 5 条)相关文档

';\n ?>\n
— PushPlus\n 评论微信(公众号)提醒(pushplus提供的公众号推送服务(每天 200 条)相关文档

';\n ?>\n
— 版本号\n twikoo.all.min.js 版本号(默认 1.6.4,当前文件('.$url.')状态:'.$status_code.'

';\n ?>\n
— envId\n ';\n ?>\n
— 屏蔽关键词common\n 屏蔽指定评论内容,使用 “|” 分隔关键词(非模糊匹配

';\n ?>\n
— 屏蔽境外 IPcommon\n

阻止所有非大陆、香港、台湾的境外IP发布评论(可临时用于刷评屏蔽

外网评论屏蔽';\n ?>\n
— 屏蔽境外 IPcommon\n

阻止所有非大陆、香港、台湾的境外IP访问网站(!api performance issue

外网访问屏蔽';\n ?>\n
评论微信提醒\n

基于企业微信应用开发的评论推送微信通知,需填写企业ID、企业应用AgentId、企业应用Secret(微信需关注该企业应用才能收到通知 相关文档 状态:'.$status.'

评论微信提醒';\n ?>\n
— 企业 ID\n ';\n ?>\n
— 应用 AgentId\n ';\n ?>\n
— 应用 Secret\n ';\n ?>\n
— 推送消息类型\n '文本卡片', 'type'=>'textcard'),\n array('name'=>'图文卡片', 'type'=>'news'),\n array('name'=>'模板卡片', 'type'=>'template_card'),\n );\n echo '';\n ?>\n
SMTP 发件服务配置\n

SMTP 发件服务配置(配置smtp时默认使用常规设置内的管理员邮箱(状态:'.$status;\n // if($state) echo '发件测试已通过';else echo '配置未通过测试';\n echo ',如已通过但未收到邮件请检查授权码及服务器是否全部配置正确

SMTP 发件配置';\n ?>\n
— 发件邮箱\n SMTP 发件邮箱(此邮箱应用于所有评论提醒发送邮箱,默认为管理员邮箱:'.get_bloginfo('admin_email').'

';\n ?>\n
— 发件授权码\n SMTP 邮箱授权码(务必匹配发件邮箱

';\n ?>\n
— 发件服务器\n '腾讯QQ邮箱', 'href'=>'smtp.qq.com'),\n array('name'=>'腾讯企业邮', 'href'=>'smtp.exmail.qq.com'),\n array('name'=>'阿里云邮箱', 'href'=>'smtp.mxhichina.com'),\n array('name'=>'网易163邮箱', 'href'=>'smtp.163.com'),\n array('name'=>'网易企业邮(免费版)', 'href'=>'smtp.ym.163.com'),\n );\n echo '';\n ?>\n
— 邮箱发件测试\n \">\n

默认收/发件人均为管理员邮箱(发送后会更新当前配置状态是否成功

\n \n \n
WP评论邮件提醒(博主\n

WP自带评论审核提醒邮件,此选项为定制模板邮件(两者均需上方 SMTP 配置测试通过后才能收到邮件提醒,状态:'.$status.'

评论邮件提醒';\n ?>\n
禁用 XML-RPC 服务(防爆破)\n

防止攻击者绕过 wordpress 登录限制消耗系统资源(禁用后将无法使用 wp 官方APP及相关接口

Disable XML-RPC';\n ?>\n
禁用图片上传自动裁剪\n

一般图片上传裁剪规则可在 媒体 中修改

禁用图片裁剪';\n ?>\n
\n
\n
\n

03页面配置

PAGES SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 首页卡片导航下方左侧背景图(带动画

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类背景图,列表旁调用图片(默认背景图

';\n ?>\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n 分类展示数量(默认展示显示5条

';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n '.$preset.'';\n ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n slug) && in_array($acg_cat->slug, $async_array)) {\n ?>\n \">\n — '.$acg_cat->name.' 数量'; ?>\n \n \n slug) && in_array($weblog_cat->slug, $async_array)){\n ?>\n \">\n — '.$weblog_cat->name.' 数量'; ?>\n \n \n slug) && in_array($archive_cat->slug, $async_array)){\n ?>\n \">\n — '.$archive_cat->name.' 数量'; ?>\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n

开启后可 禁用 文章模板内使用划线标记功能(默认关闭

文章划线';\n ?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
站点头部公告BaaS\n

部分页面头部公告显示内容(支持第三方数据储存

站点公告';\n ?>\n
— 公告数量\n 公告展示数量(默认展示 最新发布 的 3 条公告

';\n ?>\n
面包屑导航\n

页面当前位置(面包屑导航

页面导航';\n ?>\n
文章列表预览图\n

默认当文章存在自定义 thumbnail 特色图片时才显示列表预览图,开启后将始终显示(显示优先级:自定义特色图片>文章内图片>默认图片

默认预览';\n ?>\n
展示型分类列表\n

非展示型分类文章默认使用相应单页模板(开启指定分类下的文章链接将不可查看文章详情

展示型分类';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.','.$async_opts[2]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启展示单页分类,使用逗号“ , ”分隔(默认开启日志、漫游影视、资源下载页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
文章 TOC 目录\n

文章页 table of content 目录索引,开启后在文章页可见(建议 notes 类型

文章目录';\n ?>\n
索引目录分类(多选)\n 选定分类下文章模版将开启目录索引,使用逗号“ , ”分隔(默认 notes 类型

';\n $news_cat = $templates_info['news'];\n $notes_cat = $templates_info['notes'];\n $arrobj = array();\n if($notes_cat && $news_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }elseif($notes_cat){\n array_push($arrobj, array('name' => $notes_cat->name, 'slug' => $notes_cat->slug));\n }elseif($news_cat){\n array_push($arrobj, array('name' => $news_cat->name, 'slug' => $news_cat->slug));\n }\n if (empty($arrobj)) {\n echo ' Empty Index ';\n } else {\n $preset = $arrobj[0]['slug'].',';\n if(!$value){\n update_option($opt, $preset);\n $value = $preset;\n }\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($arrobj as $array){\n $slug = $array['slug'];\n $checking = in_array($slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n }\n ?>\n
首页 - banner\n \n

首页 banner 组图数组(使用逗号“ , ”分隔,图库中按住“CTRL”多选图片/视频

\n \n \" placeholder=\"\" class=\"large-text upload_field\" value=\"\" style=\"max-width:88%\" />\n \n
首页 - 卡片文章\n term_id;//get_category_by_slug('news')->term_id; // can not get cid by '/') \n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 卡片导航\n 展示在首页的导航卡片,使用分号“ ; ”分隔(使用斜杠“ / ”自定义名称(留空默认分类名称)如 news/文; notes/笔...

';\n ?>\n
首页 - 友链分类\n name = '所有类目';\n // $defaults->slug = '';\n // if (!empty($lists)) array_unshift($lists, $defaults);\n // // print_r($lists);\n // if(!$value) update_option($opt, $defaults->slug);else $preset=$value;\n // echo '';\n if(!$value) {\n $preset_ids = '';\n foreach ($lists as $list) {\n $preset_ids .= $list->term_id . ',';\n }\n update_option($opt, $preset_ids);\n $value = $preset_ids;\n }\n echo '

首页随机友链列表指定分类(默认全选所有类目

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n foreach ($lists as $list) {\n $opts_id = $list->term_id;\n $checking = in_array($opts_id, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
首页 - 日志日记BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

日志栏目';\n ?>\n
— 日志日记分类\n term_id;//get_category_by_slug('weblog')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - ACG栏目BaaS\n

开启首页科技资讯栏目(默认开启,选择任意项后可手动关闭,支持多分类及baas数据

ACGN栏目';\n ?>\n
— ACGN分类\n term_id;//get_category_by_slug('acg')->term_id; //return cid for recent_posts_query\n $value = get_option($opt);\n // if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if options unset\n echo '
首页 - 标签云\n

首页随机标签云(自带主题色,若检测到无标签将默认展示随机动漫图;可在页面缓存中开启 tagclouds

标签の云';\n ?>\n
— 标签展示数量\n 最多显示数量(默认显示 32 个

';\n ?>\n
— 标签最大字体\n 最大显示字体(默认最大 30px,最小 10px

';\n ?>\n
— 始终更新缓存\n

自动更新标签云缓存(开启后访问标签云时将始终更新缓存为最新,默认每日自动更新

AlwaysUpdate';\n ?>\n
Google Adsense 页面广告\n

谷歌广告(开启后前往 \"/inc/wp-blocks.php\" 修改全站初始化广告代码:方形侧栏/纵向侧栏/富文本列表/纯文本列表

Adsense';\n ?>\n
— 文章页广告\n

开启文章内页 尾部广告位

文章页广告';\n ?>\n
— 侧边栏广告\n

开启文章列表 侧边广告位

侧边栏广告';\n ?>\n
足迹地图 \n

聚合点足迹地图(tip: 将坐标数据及全景数据留空可恢复默认值

足迹地图';\n ?>\n
— Map\n '高德地图', 'type'=>'amap'),\n array('name'=>'腾讯地图', 'type'=>'tmap'),\n );\n $preset = $maps[0]['type'];\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update\n echo '';\n ?>\n
— API Key\n 地图 API 调用 KEY

';\n ?>\n
— 坐标数据\n Content

overwrite context to content

`,\n context: \"晨光家园\",\n district: \"朝阳区\",\n city: \"北京\",\n },\n {\n lnglat: \"39.957363077042,116.412789588355\",\n thumbnail: \"//img.2broear.com/2025/06/front.webp\",\n content: ``,\n context: \"东城家园\",\n district: \"东城区\",\n city: \"北京\",\n },\n];\n// 配置标记区域\nvar district = {\n \"北京\": {\n \"lnglat\" : \"39.904989,116.405285\",\n },\n \"朝阳区\": {\n \"lnglat\" : \"39.921489,116.486409\",\n },\n};' : $preset_ . '\n//配置标记点对象数组\nconst markerData = [\n {\n position: \"39.953416,116.480945\",\n content: ``,\n context: \"\",\n },\n {\n position: \"39.984104,116.407503\",\n content: `

Content

overwrite context to content

`,\n context: \"test_thumbnail\",\n },\n {\n position: \"39.908802,116.397502\",\n content: \"\",\n context: \"\",\n },\n];';\n if(!$value) update_option($opt, $preset);else $preset=$value; //auto update option to default if unset\n echo '

手动填写数据源,自动插入上方坐标数据之上(示例数据已预设,points:标点,district:索引,content 参数支持嵌入 iframe 标签

注意:此项预设数据(留空)随地图类型改变而改变!

坐标拾取器(TMap)'; //https://lbs.amap.com/tools/picker\n ?>\n
— 全景数据列表(可选)\n 手动填写全景地图数据(示例数据已预设:可通过设置 entry 参数以跳转其他 map(可设置回溯 map),可选设置环境地图(跳转同理

参数说明:

entry:点击进入下个场景入口(数组对象,可加入多个入口);ctx:入口标题数组;env:环境贴图数组;uvs:可点击范围UV数组(需开启debug调试右击获取uv信息);point:点击中心点(显示动画贴图区域,x,y,z信息需在debug调试右击事件获取;px,py,pz为自定义修饰偏移;rx,ry,rz为旋转动画贴图配置;width,height,deepth为动画贴图尺寸;cw,ch,cs为ctx入口标题画布尺寸,其中cs可调节画布/字体大小)

';\n ?>\n
缓存索引 - 页面配置 \n

部分页面使用 db 索引缓存数据(默认开启,开启此项可能影响 _ajax_nonce 校验 校验已修复

页面缓存';\n ?>\n
— 开启页面(多选)\n name = 'RSS 订阅';\n $rss_feeds->slug = 'rssfeeds';\n $tag_clouds->name = 'TAG 标签云';\n $tag_clouds->slug = 'tagclouds';\n $async_opts = array($templates_info['news'], $templates_info['notes'], $templates_info['weblog'], $templates_info['acg'], $templates_info['2bfriends'], $templates_info['download'], $templates_info['archive'], $templates_info['ranks'], $rss_feeds, $tag_clouds);\n // print_r($async_opts);\n if(!$value) {\n $preset_str = $rss_feeds->slug.','; //$async_opts[3]->slug.','.$async_opts[5]->slug.','.$async_opts[6]->slug.','.\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启缓存索引页面,使用逗号“ , ”分隔(默认开启归档、漫游影视及友链页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option){\n if (!isset($option->slug) || !isset($option->name)) {\n continue;\n }\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
异步加载 - 页面配置 \n

部分页面使用 ajax 异步加载数据(默认开启(为缓解数据库请求压力,归档已启用数据库索引,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

异步加载';\n ?>\n
— 开启页面(多选)\n slug.','.$async_opts[1]->slug.',';\n update_option($opt, $preset_str);\n $value = $preset_str;\n }\n echo '

指定开启 ajax 异步页面,使用逗号“ , ”分隔(默认开启漫游影视、归档页面

';\n $async_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($async_array);\n foreach ($async_opts as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $async_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
\n 漫游影视默认/手动加载数量(默认 9

';\n ?>\n
\n 日志·记默认/手动加载数量(默认 '.get_option('posts_per_page').'

';\n ?>\n
\n 归档默认/手动加载数量(默认 8

';\n ?>\n
AI 文章摘要 \n

指定文章类型中自动生成 AI 摘要,内建本地文件缓存机制,仅首次请求返回付费(目前支持 3 个模型 api(chatgpt / kimi / deepseek)请根据不同 model 选择合适的 max token

文章摘要';\n ?>\n
— API Key OPENAI\n API Kyes 账号密钥(兼容密钥

';\n ?>\n
— API Proxy OPENAI\n API 反代链接(默认 https://api.openai.com,可选兼容接口 https://api.moonshot.cn、https://api.deepseek.com

';\n ?>\n
— API Lists OPENAI\n

API 接口列表,/v1/completions 接口会调用 prompt(默认 /v1/chat/completions

';\n ?>\n
— API Model OPENAI\n

可选 AI 对话模型,默认使用 gpt-3.5-turbo,价格参考,可选 Moonshot 系列模型,价格参考,可选 Deepseek 系列模型,价格参考

';\n ?>\n
— Max Token\n 限制消耗 token 总数,openAI 限制中文请求字符 token*2:请求 prompt 最大限制 4096,默认实际可用 3700+ prompt_token,余下 392 字符为 completion_token 响应预设占位,估算可返回150中文字符左右。(默认4096,预留(减少)196

';\n ?>\n
— Temperature\n 返回内容随机程度(最小0.0,默认0.8

';\n ?>\n
— 合并分割请求\n

此项主要用于长篇文章场景(更新:DeepSeek API 不限制用户并发量),开启自动计算文章字符请求所需 token 若大于模型限制 token (gpt-3.5 默认 4096,限制输入 3700+)则取消全文请求并自动将文章分割为上下文两段分别请求摘要,请求完成后合并上下文摘要内容再请求全文综合摘要。开启此项后若遇到长文,至少会消耗 3 次请求(内容 token 小于规定内仅请求一次

chat 模型下免费账号每分钟限制请求(RPM)为3次(若请求返回 context_length_exceeded 错误代码时可尝试开启下方 “始终合并请求” 选项,为节省 token 此项默认关闭

Summarize summaries';\n ?>\n
— 始终合并请求\n

此项主要用于合并分割请求失败(二次请求 token 大于 4096)时,忽略后续返回错误并追加生成文章尾段摘要,再合并首次+末尾摘要生成综合摘要

开启此项同样会消耗至少3次请求(不与分割请求叠加,可能丢失部分文章中段内容,但可始终保持文章首尾逻辑

Always Summarize';\n ?>\n
— 已缓存数据(更新)\n

本地已缓存文章摘要数据,勾选后 提交保存 以显示记录(倒序,默认最近10条)。点击文章ID可删除对应记录(不可逆),悬浮文章ID 可查看文章标题及摘要

删除文章摘要记录后,重新访问文章以更新摘要

LOCAL CACHED POSTS';\n if(get_option($opt)){\n include(get_template_directory() . '/plugin/'.get_option('site_chatgpt_dir').'/gpt_data.php');\n // print_r($cached_post);\n $res_cls_obj = json_decode(json_encode(array_reverse($cached_post)));\n $echo_count = 0;\n $echo_limit = 10;\n echo '
    ';\n foreach ($res_cls_obj as $cached_pid => $cached_post){\n $echo_count++;\n $text_res = api_get_resultText($cached_post);\n if(!$text_res){\n $text_res = $cached_pid.' => NULL';\n }\n $cached_post_content = preg_replace('/.*\\n/','', $text_res);\n $cached_post_pid = preg_replace('/[^0-9]/', '', $cached_pid);\n $cached_post_title = get_the_title($cached_post_pid);\n echo '
  • ';\n if($echo_count>=$echo_limit) break;\n }\n echo '
';\n ?>\n \n \n
— 开启页面(多选)\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

指定开启 chatGPT AI 摘要文章页面(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
— 同步页面 SEO 描述\n

使用文章AI摘要填充 文章页面 description 描述(引入本地缓存文件过大可能影响性能

文章 AI SEO 描述';\n ?>\n
— auth Directory\n GPT 文件目录(留空默认 authentication

';\n ?>\n
个人备忘录 - Memos \n

开启 memos 页面备忘录

useMemos';\n ?>\n
— Access Token必填\n API Access Token 密钥

';\n ?>\n
— API Url\n API 调用服务部署地址,默认 https://demo.usememos.com

';\n ?>\n
— Query Pattern\n

useMemos 查询类型,默认查询所有数据,可选 all 仅返回公开数据(除 ARCHIVED、PRIVATE.. 详细参考、Memos API 非官方不完全说明、memos 接口文档

';\n ?>\n
文章页面 - 划线标记 Beta \n

开启后默认通用文章模板页面(可禁用文章模板)使用划线标记功能(该功能目前仅限评论用户使用,用户信息自动与 通用控制->评论系统 同步获取

划线标记';\n ?>\n
— 最大标记数量\n Marker 最大标记数量(最大展示10个,默认开启 3 个

';\n ?>\n
流式传输 API SSE \n

后端 api 数据流式传输至前端(EventStream 接收输出,支持marker、gpt..

EventStream';\n ?>\n
滚动动画\n

全站列表数据滚动渐进式加载动画

滚动动画';\n ?>\n
计数动画\n

启用位于页面背景上的数字自动递增到目标值动画(目前支持归档及漫游影视页面,若此项修改提交后无效 可通过 更新/发布/删除 文章重建缓存

计数动画';\n ?>\n
友链 - 状态检测\n

开启后定期检测并显示友链状态,可选开启指定分类,若检测站点返回 400+ 错误将自动将该友链设置为 standby 不可访问状态(此项将消耗大量时间,默认每日6点更新

Link State';\n ?>\n
— 检测分类(多选)\n 指定检测友链分类状态,使用逗号“ , ”分隔

';\n $exist_array = explode(',',trim($value)); // NO \",\" Array\n $links_array = get_links_category();\n // print_r($links_array);\n foreach ($links_array as $link_category) {\n if (!$link_category) continue;\n $link_slug = $link_category->slug;\n $checking = in_array($link_slug, $exist_array) ? 'checked' : '';\n echo '';\n }\n echo '
';\n ?>\n
— RSS活性检测 Alpha\n

检测并显示友链RSS活性状态,超过 2 年未更新将被标记“待除草”状态(此项为 A 测,存在数据差异,不建议开启

RSS ALIVE STATE';\n ?>\n
归档 - 报表范围\n

开启后显示全年(去年-今年当月)热度报表(默认显示当年/月份,若开启此项无效 可通过 更新/发布/删除 文章重建归档缓存索引,或等待第二天自动刷新缓存

Yearly Contributions';\n ?>\n
归档 - 分类统计\n

开启后显示当年已发布文章分类统计(默认开启,已修复可能存在的性能问题

Categorize Posts';\n ?>\n
关于 - MBTI数据\n 展示在关于页面的MBIT图表数据,使用分号“ ; ”分隔(使用斜杠“ / ”分隔类型和占比,如 before/64; after/67;...

';\n ?>\n
— MBIT测试结果\n MBIT测试人格类型,使用斜杠“ / ”分隔(规则同上

';\n ?>\n
关于 - 背景视频\n 关于我背景视频

';\n ?>\n
留言板 - 背景视频\n 留言板背景视频

';\n ?>\n
漫游影视 - 背景视频\n 漫游影视背景视频(开启后背景图片将作为视频的poster展示

';\n ?>\n
隐私政策 - 背景视频\n 隐私政策背景视频

';\n ?>\n
\n
\n
\n

04边栏设置

SIDEBAR SETTINGS

\n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \">\n \n \n \n \n
Pixiv 排行(挂件)\n

p站挂件(可自定义至多展示50数量

PIXIV';\n ?>\n
— Pixiv 加载数量\n Pixiv 每日排名数量(最大展示50个,默认开启

';\n ?>\n
倒计时(挂件)\n

文章列表及内页侧边栏倒计时挂件(如需在其他页面自定义定时器,只需在调用 the_countdown_widget() 函数时新增下列三个子选项作为参数即可

CountDown';\n ?>\n
— 定时日期\n 倒计时日期(日期格式为“YYYY/MM/DD,HH:MM:SS”,上午12点表示当日凌晨00:00

';\n ?>\n
— 标题 / 结语\n

倒计时左上角显示名称,及倒计时结束标语(默认当年春节倒计时,使用“/”分隔

\n ';\n ?>\n
— 背景图片/视频\n 倒计时背景图片/视频(默认新年 gif

'; //\n ?>\n
侧边栏热门文章BaaS\n

资讯、资讯文章分类页面侧边栏文章热度排行(支持第三方数据储存

侧边栏热门文章';\n ?>\n
— 热门文章分类\n

默认使用一级栏目首位“$cats_haschild[0]->slug”分类(亦可选用其他分类文章热度排行

\n
\n
\n

05页尾设置

FOOTER CONTROLS

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
底部近期文章\n term_id.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

页面底部最左侧资讯栏目分类(使用逗号“ , ”分隔,可选多个分类

';\n output_article_opts($opt, $value);\n echo '
';\n ?>\n
底部导航链接\n slug.','.$options[1]->slug.',';\n update_option($opt, $preset_str );\n $value = $preset_str;\n }\n echo '

底部右下角导航链接(使用逗号“ , ”分隔,可选填其他分类 slug 别名

';\n $pre_array = explode(',',trim($value)); // NO \",\" Array\n // $pre_array_count = count($pre_array);\n foreach ($options as $option) {\n if ($option->error) continue;\n $opts_slug = $option->slug;\n $checking = in_array($opts_slug, $pre_array) ? 'checked' : '';\n echo '';\n }\n echo '
';;\n ?>\n
站点启动时间\n 1999;$year--){\n array_push($options,$year);\n }\n $options_count = count($options);\n echo '';\n ?>\n
创作共用许可\n
服务器信息\n '阿里云', 'icon'=>$img_cdn.'/images/settings/alicloud.png'),\n array('name'=>'腾讯云', 'icon'=>$img_cdn.'/images/settings/tencentcloud.svg'),\n array('name'=>'华为云', 'icon'=>$img_cdn.'/images/settings/huaweiclouds.svg'),\n );\n echo '';\n ?>\n
网站备案信息\n

网站备案信息(国外服务器请无视此选项

网站备案号';\n ?>\n
— 备案号\n ';\n ?>\n
十年之约\n

页面底部展示“十年之约”图标(页尾图标

\"wormhole\"';\n ?>\n
— foreverblog 链接\n 十年之约链接(foreverblog 图标

';\n ?>\n
— wormhole 虫洞\n

随机访问十年之约友链博客(页尾图标

\"wormhole\"'; \n ?>\n
萌备博主\n

萌国 ICP 备案(页尾图标

\"moe_beian\"'; \n ?>\n
— 萌备案号\n ';\n ?>\n
— 异次元之旅\n

我们一起去萌站成员de星球旅行吧 !

\"moe_beian\"';\n ?>\n
非AI撰写声明\n

非AI撰写声明(生成 not-by-ai 声明图标,状态:'.$status.'

\"notbyai\"';\n ?>\n
站点施工警示\n

工程施工警示灯控制(开启显示🚨警示灯🚨动画,状态:'.$status.'

';\n ?>\n
在线沟通插件\n

在线沟通控制(生成 script 链接和底部图标,状态:'.$status.'

TIDIO ';\n ?>\n
— 沟通链接\n ';\n ?>\n
站点统计插件\n

站点统计控制(生成 script 链接,状态:'.$status.'

U.MENG';\n ?>\n
— 统计链接\n ';\n ?>\n
底部文本栏目\n ';\n ?>\n
Email\n 底部(邮箱)联系方式(默认管理员邮箱

';\n ?>\n
Wechat\n 底部(微信)联系方式(图片链接

';\n ?>\n
Github\n ';\n ?>\n
Bilibili\n ';\n ?>\n
Netease\n ';\n ?>\n
Steam\n ';\n ?>\n
Weibo\n ';\n ?>\n
Twitter\n ';\n ?>\n
\n
\n \n
\n
\n"}}}}