├── 404.php ├── README.md ├── assets ├── css │ ├── fancybox.min.css │ ├── font-awesome.min.css │ ├── style.css │ ├── theme.min.css │ └── user_center.css ├── fonts │ ├── FontAwesome.otf │ ├── alimama.woff2 │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── images │ ├── background.svg │ ├── banner.jpg │ ├── default-thumbnail.jpg │ ├── error │ │ ├── 404-number.svg │ │ ├── astronut.svg │ │ ├── globe.svg │ │ ├── planet.svg │ │ ├── rocket.svg │ │ └── stars.svg │ ├── favicon.ico │ ├── lazy.svg │ ├── loading.gif │ ├── logo.png │ ├── msg-tip.png │ ├── offcanvas.png │ ├── pay-check-icon.png │ ├── post-list.png │ ├── random │ │ ├── 1.jpg │ │ ├── 10.jpg │ │ ├── 11.jpg │ │ ├── 12.jpg │ │ ├── 13.jpg │ │ ├── 14.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ ├── 8.jpg │ │ ├── 9.jpg │ │ └── thumbs.db │ ├── thumbs.db │ ├── top │ │ ├── bear.gif │ │ ├── dance.gif │ │ ├── lemon.gif │ │ ├── lolisister1.gif │ │ ├── lolisister2.gif │ │ ├── meow.gif │ │ └── thumbs.db │ ├── up-new-iocn.png │ └── vip │ │ ├── v1.jpg │ │ ├── v2.jpg │ │ ├── v3.jpg │ │ ├── v4.jpg │ │ └── v5.jpg └── js │ ├── boxmoe.js │ ├── comments.js │ ├── jquery.min.js │ ├── lib.min.js │ ├── quicktags.js │ ├── sakura.js │ ├── theme.min.js │ ├── tinymce-emoji.js │ └── user_center.js ├── comments.php ├── core ├── module │ ├── fun-admin.php │ ├── fun-article.php │ ├── fun-basis.php │ ├── fun-comments.php │ ├── fun-gravatar.php │ ├── fun-msg.php │ ├── fun-navwalker.php │ ├── fun-no-category.php │ ├── fun-optimize.php │ ├── fun-seo.php │ ├── fun-shortcode.php │ ├── fun-smtp.php │ ├── fun-user-center.php │ └── fun-user.php ├── panel │ ├── css │ │ └── optionsframework.css │ ├── images │ │ ├── banner.jpg │ │ ├── ico-delete.png │ │ └── panel_logo.png │ ├── includes │ │ ├── class-options-framework-admin.php │ │ ├── class-options-framework.php │ │ ├── class-options-interface.php │ │ ├── class-options-media-uploader.php │ │ └── class-options-sanitization.php │ ├── js │ │ ├── media-uploader.js │ │ └── options-custom.js │ ├── options-framework-js.php │ ├── options-framework.php │ └── settings │ │ ├── set-artice.php │ │ ├── set-assets.php │ │ ├── set-banner.php │ │ ├── set-basis.php │ │ ├── set-comment.php │ │ ├── set-msg.php │ │ ├── set-optimize.php │ │ ├── set-seo.php │ │ ├── set-social.php │ │ ├── set-theme.php │ │ └── set-user.php └── widgets │ ├── widget-ads.php │ ├── widget-archive.php │ ├── widget-category.php │ ├── widget-comments.php │ ├── widget-postlist.php │ ├── widget-search.php │ ├── widget-set.php │ ├── widget-tags.php │ └── widget-userinfo.php ├── footer.php ├── functions.php ├── header.php ├── index.php ├── options.php ├── page.php ├── page ├── p-go.php ├── p-goto.php ├── p-links.php ├── p-page-nosidebar-noborder.php ├── p-page-nosidebar.php ├── p-page.php ├── p-reset_password.php ├── p-signin.php ├── p-signup.php ├── p-user_center.php └── template │ ├── blog-list.php │ ├── blog-page-nosidebar-noborder.php │ ├── blog-page-nosidebar.php │ ├── blog-page.php │ ├── blog-single.php │ ├── user-collect.php │ ├── user-comment.php │ ├── user-consumption.php │ ├── user-home.php │ ├── user-money.php │ ├── user-nav.php │ ├── user-order.php │ ├── user-password.php │ ├── user-recharge.php │ └── user-vip.php ├── screenshot.jpg ├── search.php ├── sidebar.php ├── single.php └── style.css /404.php: -------------------------------------------------------------------------------- 1 | 2 | 10 | > 11 | 12 | 13 | 14 | <?php echo boxmoe_theme_title(); ?> 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 | 31 |
32 |
33 |
34 |
35 | 36 |
37 |
38 |
39 |
40 | 41 |
42 |
43 |
44 |
45 | 46 |
47 |
48 |
49 | 50 |
51 |
52 |
53 | 54 |
55 |
56 |
57 | 58 |

页面未找到

59 |

您要查找的页面不存在。

60 | 61 | 返回首页 62 |
63 |
64 |
65 |
66 | 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **欢迎使用 Lolimeow Wordpress主题** 4 |
版本已于2025年2月20日进行迭代发布 V13.Beta版本 5 | 6 | **版本进行了重构:** 7 |
前端UI 和 后代代码都进行了优化,特别的后端的代码进行了标准化迭代,这是为了以后BOXMOE的主题都可以无缝切换 8 | 9 | **主题官网链接:** 10 |
[点击查看](https://www.boxmoe.com/468.html "点击查看") 11 | 12 |
本次迭代的内容比较多,具体在博客体验前端,第一次增加了暗黑模式 并3模切换; 13 | 14 |
会员中心UI也进行了迭代; 15 | 16 |
前端图片也添加了懒加载; 17 |
18 |
19 | **2/21更新** 20 |
21 |
1.V13.01 添加登录可见短代码 \core\module\fun-shortcode.php 可单独替换文件 22 |
2.V13.01 优化注册邮件通知 \core\module\fun-msg.php 、\core\module\fun-user.php可单独替换文件 23 |
3.V13.01 删除多余无用文件 \page\page-erphpdown-user.php 可单独删除文件 24 |
25 | **V13.02** 26 |
添加侧栏搜索框 \core\widgets\widget-set.php \core\widgets\widget-search.php 27 | **V13.03-V13.1** 28 |
修复文章形式开关问题、错别字、优化短代码、添加经典编辑器表情包、添加仪表盘评论回复表情包、添加评论内容安全防护输出、优化UI、优化注册/登录页面体验,其他bug; -------------------------------------------------------------------------------- /assets/css/user_center.css: -------------------------------------------------------------------------------- 1 | .user_center {background-color:var(--bs-white);} 2 | .fs-7 {font-size:.775rem;} 3 | .input-file [type = file] {position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;} 4 | .login_register_page .logo {height:50px;} 5 | .vip-card {transition:all 0.3s ease;cursor:pointer;border:1px solid #eee !important;} 6 | .vip-card:hover {transform:translateY(-5px);} 7 | .shadow-hover:hover {box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important;} 8 | .price {font-size:0.95rem;font-weight:bold;color:var(--bs-dark);} 9 | .price small {font-size:0.9rem;font-weight:normal;} 10 | .vip-card ul li {margin-bottom:0.5rem;color:#666;} 11 | .btn-upgrade {width:80%;border-radius:20px;} 12 | .row .col-lg-4:nth-child(1) .btn-upgrade {color:#4e73df;border-color:#4e73df;} 13 | .row .col-lg-4:nth-child(1) .btn-upgrade:hover {background-color:#4e73df;color:#fff;} 14 | .row .col-lg-4:nth-child(2) .btn-upgrade {color:#f6c23e;border-color:#f6c23e;} 15 | .row .col-lg-4:nth-child(2) .btn-upgrade:hover {background-color:#f6c23e;color:#fff;} 16 | .row .col-lg-4:nth-child(3) .btn-upgrade {color:#e74a3b;border-color:#e74a3b;} 17 | .row .col-lg-4:nth-child(3) .btn-upgrade:hover {background-color:#e74a3b;color:#fff;} 18 | .row .col-lg-4:nth-child(4) .btn-upgrade {color:#1cc88a;border-color:#1cc88a;} 19 | .row .col-lg-4:nth-child(4) .btn-upgrade:hover {background-color:#1cc88a;color:#fff;} 20 | .row .col-lg-4:nth-child(5) .btn-upgrade {color:#36b9cc;border-color:#36b9cc;} 21 | .row .col-lg-4:nth-child(5) .btn-upgrade:hover {background-color:#36b9cc;color:#fff;} 22 | .row .col-lg-4:nth-child(6) .btn-upgrade {color:#858796;border-color:#858796;} 23 | .row .col-lg-4:nth-child(6) .btn-upgrade:hover {background-color:#858796;color:#fff;} 24 | .row .col-lg-4:nth-child(7) .btn-upgrade {color:#5a5c69;border-color:#5a5c69;} 25 | .row .col-lg-4:nth-child(7) .btn-upgrade:hover {background-color:#5a5c69;color:#fff;} 26 | .row .col-lg-4:nth-child(8) .btn-upgrade {color:#2c9faf;border-color:#2c9faf;} 27 | .row .col-lg-4:nth-child(8) .btn-upgrade:hover {background-color:#2c9faf;color:#fff;} 28 | .row .col-lg-4:nth-child(9) .btn-upgrade {color:#8b4513;border-color:#8b4513;} 29 | .row .col-lg-4:nth-child(9) .btn-upgrade:hover {background-color:#8b4513;color:#fff;} 30 | .row .col-lg-4:nth-child(10) .btn-upgrade {color:#9932cc;border-color:#9932cc;} 31 | .row .col-lg-4:nth-child(10) .btn-upgrade:hover {background-color:#9932cc;color:#fff;} 32 | -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/fonts/alimama.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/fonts/alimama.woff2 -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /assets/images/background.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/banner.jpg -------------------------------------------------------------------------------- /assets/images/default-thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/default-thumbnail.jpg -------------------------------------------------------------------------------- /assets/images/error/404-number.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/error/globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/images/error/planet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/error/rocket.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/favicon.ico -------------------------------------------------------------------------------- /assets/images/lazy.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 12 | 13 | 14 | 18 | -------------------------------------------------------------------------------- /assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/loading.gif -------------------------------------------------------------------------------- /assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/logo.png -------------------------------------------------------------------------------- /assets/images/msg-tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/msg-tip.png -------------------------------------------------------------------------------- /assets/images/offcanvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/offcanvas.png -------------------------------------------------------------------------------- /assets/images/pay-check-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/pay-check-icon.png -------------------------------------------------------------------------------- /assets/images/post-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/post-list.png -------------------------------------------------------------------------------- /assets/images/random/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/1.jpg -------------------------------------------------------------------------------- /assets/images/random/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/10.jpg -------------------------------------------------------------------------------- /assets/images/random/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/11.jpg -------------------------------------------------------------------------------- /assets/images/random/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/12.jpg -------------------------------------------------------------------------------- /assets/images/random/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/13.jpg -------------------------------------------------------------------------------- /assets/images/random/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/14.jpg -------------------------------------------------------------------------------- /assets/images/random/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/2.jpg -------------------------------------------------------------------------------- /assets/images/random/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/3.jpg -------------------------------------------------------------------------------- /assets/images/random/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/4.jpg -------------------------------------------------------------------------------- /assets/images/random/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/5.jpg -------------------------------------------------------------------------------- /assets/images/random/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/6.jpg -------------------------------------------------------------------------------- /assets/images/random/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/7.jpg -------------------------------------------------------------------------------- /assets/images/random/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/8.jpg -------------------------------------------------------------------------------- /assets/images/random/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/9.jpg -------------------------------------------------------------------------------- /assets/images/random/thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/random/thumbs.db -------------------------------------------------------------------------------- /assets/images/thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/thumbs.db -------------------------------------------------------------------------------- /assets/images/top/bear.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/bear.gif -------------------------------------------------------------------------------- /assets/images/top/dance.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/dance.gif -------------------------------------------------------------------------------- /assets/images/top/lemon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/lemon.gif -------------------------------------------------------------------------------- /assets/images/top/lolisister1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/lolisister1.gif -------------------------------------------------------------------------------- /assets/images/top/lolisister2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/lolisister2.gif -------------------------------------------------------------------------------- /assets/images/top/meow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/meow.gif -------------------------------------------------------------------------------- /assets/images/top/thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/top/thumbs.db -------------------------------------------------------------------------------- /assets/images/up-new-iocn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/up-new-iocn.png -------------------------------------------------------------------------------- /assets/images/vip/v1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/vip/v1.jpg -------------------------------------------------------------------------------- /assets/images/vip/v2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/vip/v2.jpg -------------------------------------------------------------------------------- /assets/images/vip/v3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/vip/v3.jpg -------------------------------------------------------------------------------- /assets/images/vip/v4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/vip/v4.jpg -------------------------------------------------------------------------------- /assets/images/vip/v5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/assets/images/vip/v5.jpg -------------------------------------------------------------------------------- /assets/js/quicktags.js: -------------------------------------------------------------------------------- 1 | QTags.addButton( 'blockquote2', '引用1', '[blockquote1 name=\'签名\']内容[/blockquote1]','' ); 2 | QTags.addButton( 'blockquote3', '引用2', '[blockquote2 name=\'签名\']内容[/blockquote2]','' ); 3 | QTags.addButton( 'H2', 'H2', '

内容

','' ); 4 | QTags.addButton( 'H2', 'H2标题', '

内容

','' ); 5 | QTags.addButton( 'H2', 'H2标题', '

内容

','' ); 6 | QTags.addButton( 'H3', 'H3标题', '

内容

','' ); 7 | QTags.addButton( 'H4', 'H4标题', '

内容

','' ); 8 | QTags.addButton( 'codepre', '代码高亮', '
代码
','' ); 9 | QTags.addButton( 'nextpage', '分页', '','' ); 10 | QTags.addButton( 'H2pen', 'H2毛笔标', '

文字

', '','','H2pen' ); 11 | QTags.addButton( 'H2set', 'H2设置标', '

文字

', '','','H2set' ); 12 | QTags.addButton( 'H2download', 'H2下载标', '

文字

', '','','H2download' ); 13 | QTags.addButton( 'H2wechat', 'H2微信标', '

文字

', '','','H2wechat' ); 14 | QTags.addButton( 'H2mht', 'H2QQ企鹅标', '

文字

', '','','H2mht' ); 15 | QTags.addButton( 'downloadbtn', '下载按钮', '下载按钮', '','','downloadbtn' ); 16 | QTags.addButton( 'linksbtn', '链接按钮', '链接按钮', '','','linksbtn' ); 17 | QTags.addButton( 'flybtn', '飞来模块', '
内容段
', '','','flybtn' ); 18 | QTags.addButton( 'ollist', 'OL列表', '
      ol内容段
', '','','ollist' ); 19 | QTags.addButton( 'audio', '音频', '[audio link=\'音频链接\'][/audio]', '','','audio' ); 20 | QTags.addButton( 'video', '视频', '[video link=\'视频链接\'][/video]', '','','video' ); 21 | QTags.addButton( 'userreading1', '会员查看模式一', '[userreading]', '隐藏内容[/userreading]','','userreading1' ); 22 | QTags.addButton( 'userreading2', '会员查看模式二', '[userreading notice="未登录时候显示的内容"]', '隐藏内容[/userreading]','','userreading2' ); 23 | QTags.addButton( 'pwd_protected_post', '文章密码保护', '[pwd_protected_post key="保护密码"]文章密码保护内容','[/pwd_protected_post]' ); 24 | QTags.addButton( 'downloadbox', '下载框', '
\n

下载信息

\n
    \n
  • 下载地址1:点击下载说明
  • \n
\n部分资源来源于网络如有侵权,请联系删除\n
', '','','downloadbox' ); 25 | -------------------------------------------------------------------------------- /assets/js/tinymce-emoji.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | tinymce.create('tinymce.plugins.BoxmoeEmoji', { 3 | init: function(editor, url) { 4 | editor.addButton('boxmoe_emoji', { 5 | type: 'menubutton', 6 | text: '表情', 7 | icon: false, 8 | menu: (function() { 9 | var emojiList = editor.settings.boxmoe_emoji_list; 10 | var items = []; 11 | 12 | for (var emoji in emojiList) { 13 | items.push({ 14 | text: emoji + ' ' + emojiList[emoji], 15 | onclick: (function(e) { 16 | return function() { 17 | editor.insertContent(' ' + e + ' '); 18 | }; 19 | })(emoji) 20 | }); 21 | } 22 | 23 | return items; 24 | })() 25 | }); 26 | }, 27 | createControl: function(n, cm) { 28 | return null; 29 | }, 30 | }); 31 | 32 | tinymce.PluginManager.add('boxmoe_emoji', tinymce.plugins.BoxmoeEmoji); 33 | })(); -------------------------------------------------------------------------------- /core/module/fun-gravatar.php: -------------------------------------------------------------------------------- 1 | user_email; 77 | $user_id = $user->ID; 78 | } else if (is_object($id_or_email)) { 79 | $user_id = $id_or_email->user_id; 80 | if (!empty($user_id)) { 81 | $id = (int) $id_or_email->user_id; 82 | $user = get_userdata($id); 83 | if ($user) 84 | $email = $user->user_email; 85 | $user_id = $user->ID; 86 | } else if (!empty($id_or_email->comment_author_email)) { 87 | $email = $id_or_email->comment_author_email; 88 | } 89 | } else { 90 | $email = $id_or_email; 91 | } 92 | $hash = md5(strtolower(trim($email))); 93 | $gavatarurl = 'https://' . boxmoe_getavatar_host() . '/' . $hash; 94 | 95 | $class = isset($args['class']) 96 | ? array_merge(['avatar'], is_array($args['class']) ? $args['class'] : explode(' ', $args['class'])) 97 | : ['avatar']; 98 | $class = array_map('sanitize_html_class', $class); 99 | $class = esc_attr(implode(' ', array_unique($class))); 100 | 101 | if (isset($user_id)) { 102 | $user_avatar_url = get_user_meta($user_id, 'user_avatar', true); 103 | if ($user_avatar_url) { 104 | return 'avatar'; 105 | } elseif (stripos($email, "@qq.com")) { 106 | $qq = str_ireplace("@qq.com", "", $email); 107 | if (preg_match("/^\d+$/", $qq)) { 108 | $qqavatar = "https://" . boxmoe_qqavatar_host() . "/headimg_dl?dst_uin=" . $qq . "&spec=100"; 109 | return 'avatar'; 110 | } else { 111 | return 'avatar'; 112 | } 113 | } else { 114 | return 'avatar'; 115 | } 116 | } elseif (stripos($email, "@qq.com")) { 117 | $qq = str_ireplace("@qq.com", "", $email); 118 | if (preg_match("/^\d+$/", $qq)) { 119 | $qqavatar = "https://" . boxmoe_qqavatar_host() . "/headimg_dl?dst_uin=" . $qq . "&spec=100"; 120 | return 'avatar'; 121 | } else { 122 | return 'avatar'; 123 | } 124 | } else { 125 | return 'avatar'; 126 | } 127 | } 128 | add_filter('get_avatar', 'boxmoe_get_avatar', 10, 6); 129 | 130 | // 提取头像地址--------------------------boxmoe.com-------------------------- 131 | function boxmoe_get_avatar_url($id_or_email, $size = 100) { 132 | $email = ''; 133 | $user_id = ''; 134 | if (is_numeric($id_or_email)) { 135 | $user = get_userdata($id_or_email); 136 | if ($user) { 137 | $user_id = $id_or_email; 138 | $email = $user->user_email; 139 | } 140 | } else { 141 | $email = $id_or_email; 142 | $user = get_user_by('email', $email); 143 | if ($user) { 144 | $user_id = $user->ID; 145 | } 146 | } 147 | if ($user_id) { 148 | $user_avatar_url = get_user_meta($user_id, 'user_avatar', true); 149 | if ($user_avatar_url) { 150 | return $user_avatar_url; 151 | } 152 | } 153 | if (stripos($email, "@qq.com")) { 154 | $qq = str_ireplace("@qq.com", "", $email); 155 | if (preg_match("/^\d+$/", $qq)) { 156 | return "https://" . boxmoe_qqavatar_host() . "/headimg_dl?dst_uin=" . $qq . "&spec=100"; 157 | } 158 | } 159 | $hash = md5(strtolower(trim($email))); 160 | return 'https://' . boxmoe_getavatar_host() . '/' . $hash; 161 | } 162 | 163 | 164 | 165 | 166 | //get_avatar(get_the_author_meta('ID'), 100, '', '', array('class' => 'lazy')); 167 | 168 | -------------------------------------------------------------------------------- /core/module/fun-navwalker.php: -------------------------------------------------------------------------------- 1 | = 1) ? '' : ''; 32 | $output .= "\n$indent
    \n"; 33 | } 34 | 35 | function start_el(&$output, $item, $depth = 0, $args = null, $id = 0) 36 | { 37 | $this->current_item = $item; 38 | $has_children = in_array('menu-item-has-children', $item->classes); 39 | 40 | $is_active = in_array('current-menu-item', $item->classes) || 41 | in_array('current-page-item', $item->classes); 42 | 43 | $classes = []; 44 | $classes[] = 'nav-item'; 45 | $classes[] = $has_children ? 'dropdown' : ''; 46 | $classes[] = ($depth >= 1 && $has_children) ? 'dropdown-submenu dropend' : ''; 47 | 48 | $indent = str_repeat("\t", $depth * 2); 49 | $output .= "\n$indent
  • '; 50 | 51 | $attributes = ''; 52 | $attributes .= $item->attr_title ? ' title="' . esc_attr($item->attr_title) . '"' : ''; 53 | $attributes .= $item->target ? ' target="' . esc_attr($item->target) . '"' : ''; 54 | $attributes .= $item->xfn ? ' rel="' . esc_attr($item->xfn) . '"' : ''; 55 | $attributes .= $has_children ? ' href="#"' : ' href="' . esc_attr($item->url) . '"'; 56 | 57 | $link_class = ($depth > 0) ? 'dropdown-item' : 'nav-link'; 58 | $link_class .= $is_active ? ' active' : ''; 59 | $children_attributes = ($depth == 0) ? 'role="button" data-bs-toggle="dropdown" aria-expanded="false"' : ''; 60 | $attributes .= $has_children ? ' class="'. $link_class . ' dropdown-list-group-item dropdown-toggle" ' . $children_attributes : ' class="'. $link_class . '"'; 61 | 62 | 63 | 64 | $item_output = $args->before; 65 | $item_output .= ''; 66 | $item_output .= $args->link_before . $item->title . $args->link_after; 67 | $item_output .= ''; 68 | $item_output .= $args->after; 69 | 70 | $output .= $indent . "\t" . apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args); 71 | } 72 | 73 | function end_el(&$output, $item, $depth = 0, $args = null) 74 | { 75 | $indent = str_repeat("\t", $depth * 2); 76 | $output .= "\n$indent
  • \n"; 77 | } 78 | } -------------------------------------------------------------------------------- /core/module/fun-no-category.php: -------------------------------------------------------------------------------- 1 | flush_rules(); 15 | } 16 | // register_deactivation_hook(__FILE__, 'no_category_base_deactivate'); 17 | // function no_category_base_deactivate() { 18 | // remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); 19 | // // We don't want to insert our custom rules again 20 | // no_category_base_refresh_rules(); 21 | // } 22 | // Remove category base 23 | add_action('init', 'no_category_base_permastruct'); 24 | function no_category_base_permastruct() { 25 | global $wp_rewrite, $wp_version; 26 | if (version_compare($wp_version, '3.4', '<')) { 27 | // For pre-3.4 support 28 | $wp_rewrite -> extra_permastructs['category'][0] = '%category%'; 29 | } else { 30 | $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%'; 31 | } 32 | } 33 | // Add our custom category rewrite rules 34 | add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); 35 | function no_category_base_rewrite_rules($category_rewrite) { 36 | //var_dump($category_rewrite); // For Debugging 37 | $category_rewrite = array(); 38 | $categories = get_categories(array('hide_empty' => false)); 39 | foreach ($categories as $category) { 40 | $category_nicename = $category -> slug; 41 | if ($category -> parent == $category -> cat_ID)// recursive recursion 42 | $category -> parent = 0; 43 | elseif ($category -> parent != 0) 44 | $category_nicename = get_category_parents($category -> parent, false, '/', true) . $category_nicename; 45 | $category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]'; 46 | $category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]'; 47 | $category_rewrite['(' . $category_nicename . ')/?$'] = 'index.php?category_name=$matches[1]'; 48 | } 49 | // Redirect support from Old Category Base 50 | global $wp_rewrite; 51 | $old_category_base = get_option('category_base') ? get_option('category_base') : 'category'; 52 | $old_category_base = trim($old_category_base, '/'); 53 | $category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]'; 54 | 55 | //var_dump($category_rewrite); // For Debugging 56 | return $category_rewrite; 57 | } 58 | 59 | // Add 'category_redirect' query variable 60 | add_filter('query_vars', 'no_category_base_query_vars'); 61 | function no_category_base_query_vars($public_query_vars) { 62 | $public_query_vars[] = 'category_redirect'; 63 | return $public_query_vars; 64 | } 65 | 66 | // Redirect if 'category_redirect' is set 67 | add_filter('request', 'no_category_base_request'); 68 | function no_category_base_request($query_vars) { 69 | //print_r($query_vars); // For Debugging 70 | if (isset($query_vars['category_redirect'])) { 71 | $catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category'); 72 | status_header(301); 73 | header("Location: $catlink"); 74 | exit(); 75 | } 76 | return $query_vars; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /core/module/fun-smtp.php: -------------------------------------------------------------------------------- 1 |

    设置已保存!

    '; 40 | } 41 | 42 | // 添加测试邮件发送功能 43 | if(isset($_POST['boxmoe_smtp_test'])) { 44 | $to = sanitize_email($_POST['test_email']); 45 | $subject = '测试邮件 - ' . get_bloginfo('name'); 46 | $message = '这是一封测试邮件,如果您收到这封邮件,说明SMTP配置正确。'; 47 | $headers = array('Content-Type: text/html; charset=UTF-8'); 48 | 49 | $result = wp_mail($to, $subject, $message, $headers); 50 | 51 | if($result) { 52 | echo '

    测试邮件发送成功!请检查收件箱。

    '; 53 | } else { 54 | echo '

    测试邮件发送失败,请检查SMTP配置。

    '; 55 | } 56 | } 57 | ?> 58 |
    59 |

    SMTP邮件设置

    60 |
    61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 |
    SMTP服务器
    SMTP端口
    邮箱账号
    邮箱密码
    发件人邮箱
    发件人名称
    87 |

    88 | 89 |

    90 |
    91 | 92 | 93 |

    测试邮件发送

    94 |
    95 | 96 | 97 | 98 | 102 | 103 |
    测试收件邮箱 99 | 100 |

    请输入用于测试的收件邮箱地址

    101 |
    104 |

    105 | 106 |

    107 |
    108 |
    109 | isSMTP(); 116 | $phpmailer->Host = get_option('boxmoe_smtp_host'); 117 | $phpmailer->SMTPAuth = true; 118 | $phpmailer->Port = get_option('boxmoe_smtp_port'); 119 | $phpmailer->Username = get_option('boxmoe_smtp_user'); 120 | $phpmailer->Password = get_option('boxmoe_smtp_pass'); 121 | $phpmailer->From = get_option('boxmoe_smtp_from'); 122 | $phpmailer->FromName = get_option('boxmoe_smtp_name'); 123 | $phpmailer->SMTPSecure = 'ssl'; 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /core/panel/images/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/core/panel/images/banner.jpg -------------------------------------------------------------------------------- /core/panel/images/ico-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/core/panel/images/ico-delete.png -------------------------------------------------------------------------------- /core/panel/images/panel_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/core/panel/images/panel_logo.png -------------------------------------------------------------------------------- /core/panel/includes/class-options-framework.php: -------------------------------------------------------------------------------- 1 | 5 | * @license GPL-2.0+ 6 | * @link http://wptheming.com 7 | * @copyright 2010-2014 WP Theming 8 | */ 9 | 10 | class Options_Framework { 11 | 12 | /** 13 | * Plugin version, used for cache-busting of style and script file references. 14 | * 15 | * @since 1.7.0 16 | * @type string 17 | */ 18 | const VERSION = '1.9.0'; 19 | 20 | /** 21 | * Gets option name 22 | * 23 | * @since 1.9.0 24 | */ 25 | function get_option_name() { 26 | 27 | $name = ''; 28 | 29 | // Gets option name as defined in the theme 30 | if ( function_exists( 'optionsframework_option_name' ) ) { 31 | $name = optionsframework_option_name(); 32 | } 33 | 34 | // Fallback 35 | if ( '' == $name ) { 36 | $name = get_option( 'stylesheet' ); 37 | $name = preg_replace( "/\W/", "_", strtolower( $name ) ); 38 | } 39 | 40 | return $name; 41 | 42 | } 43 | 44 | /** 45 | * Wrapper for optionsframework_options() 46 | * 47 | * Allows for manipulating or setting options via 'of_options' filter 48 | * For example: 49 | * 50 | * 51 | * add_filter( 'of_options', function( $options ) { 52 | * $options[] = array( 53 | * 'name' => 'Input Text Mini', 54 | * 'desc' => 'A mini text input field.', 55 | * 'id' => 'example_text_mini', 56 | * 'std' => 'Default', 57 | * 'class' => 'mini', 58 | * 'type' => 'text' 59 | * ); 60 | * 61 | * return $options; 62 | * }); 63 | * 64 | * 65 | * Also allows for setting options via a return statement in the 66 | * options.php file. For example (in options.php): 67 | * 68 | * 69 | * return array(...); 70 | * 71 | * 72 | * @return array (by reference) 73 | */ 74 | static function &_optionsframework_options() { 75 | static $options = null; 76 | 77 | if ( !$options ) { 78 | // Load options from options.php file (if it exists) 79 | $location = apply_filters( 'options_framework_location', array( 'options.php' ) ); 80 | if ( $optionsfile = locate_template( $location ) ) { 81 | $maybe_options = require_once $optionsfile; 82 | if ( is_array( $maybe_options ) ) { 83 | $options = $maybe_options; 84 | } else if ( function_exists( 'optionsframework_options' ) ) { 85 | $options = optionsframework_options(); 86 | } 87 | } 88 | 89 | // Allow setting/manipulating options via filters 90 | $options = apply_filters( 'of_options', $options ); 91 | } 92 | 93 | return $options; 94 | } 95 | 96 | } -------------------------------------------------------------------------------- /core/panel/includes/class-options-media-uploader.php: -------------------------------------------------------------------------------- 1 | 5 | * @license GPL-2.0+ 6 | * @link http://wptheming.com 7 | * @copyright 2010-2014 WP Theming 8 | */ 9 | 10 | class Options_Framework_Media_Uploader { 11 | 12 | /** 13 | * Initialize the media uploader class 14 | * 15 | * @since 1.7.0 16 | */ 17 | public function init() { 18 | add_action( 'admin_enqueue_scripts', array( $this, 'optionsframework_media_scripts' ) ); 19 | } 20 | 21 | /** 22 | * Media Uploader Using the WordPress Media Library. 23 | * 24 | * Parameters: 25 | * 26 | * string $_id - A token to identify this field (the name). 27 | * string $_value - The value of the field, if present. 28 | * string $_desc - An optional description of the field. 29 | * 30 | */ 31 | 32 | static function optionsframework_uploader( $_id, $_value, $_desc = '', $_name = '' ) { 33 | 34 | // Gets the unique option id 35 | $options_framework = new Options_Framework; 36 | $option_name = $options_framework->get_option_name(); 37 | 38 | $output = ''; 39 | $id = ''; 40 | $class = ''; 41 | $int = ''; 42 | $value = ''; 43 | $name = ''; 44 | 45 | $id = strip_tags( strtolower( $_id ) ); 46 | 47 | // If a value is passed and we don't have a stored value, use the value that's passed through. 48 | if ( $_value != '' && $value == '' ) { 49 | $value = $_value; 50 | } 51 | 52 | if ($_name != '') { 53 | $name = $_name; 54 | } 55 | else { 56 | $name = $option_name.'['.$id.']'; 57 | } 58 | 59 | if ( $value ) { 60 | $class = ' has-file'; 61 | } 62 | $output .= '' . "\n"; 63 | if ( function_exists( 'wp_enqueue_media' ) ) { 64 | if ( ( $value == '' ) ) { 65 | $output .= '' . "\n"; 66 | } else { 67 | $output .= '' . "\n"; 68 | } 69 | } else { 70 | $output .= '

    ' . __( 'Upgrade your version of WordPress for full media support.', 'textdomain' ) . '

    '; 71 | } 72 | 73 | if ( $_desc != '' ) { 74 | $output .= '' . $_desc . '' . "\n"; 75 | } 76 | 77 | $output .= '
    ' . "\n"; 78 | 79 | if ( $value != '' ) { 80 | $remove = 'Remove'; 81 | $image = preg_match( '/(^.*\.jpg|jpeg|png|gif|ico*)/i', $value ); 82 | if ( $image ) { 83 | $output .= '' . $remove; 84 | } else { 85 | $parts = explode( "/", $value ); 86 | for( $i = 0; $i < sizeof( $parts ); ++$i ) { 87 | $title = $parts[$i]; 88 | } 89 | 90 | // No output preview if it's not an image. 91 | $output .= ''; 92 | 93 | // Standard generic output if it's not an image. 94 | $title = __( '预览文件', 'textdomain' ); 95 | $output .= '
    '.$title.'
    '; 96 | } 97 | } 98 | $output .= '
    ' . "\n"; 99 | return $output; 100 | } 101 | 102 | /** 103 | * Enqueue scripts for file uploader 104 | */ 105 | function optionsframework_media_scripts( $hook ) { 106 | 107 | $menu = Options_Framework_Admin::menu_settings(); 108 | 109 | if ( substr( $hook, -strlen( $menu['menu_slug'] ) ) !== $menu['menu_slug'] ) 110 | return; 111 | 112 | if ( function_exists( 'wp_enqueue_media' ) ) 113 | wp_enqueue_media(); 114 | 115 | wp_register_script( 'of-media-uploader', OPTIONS_FRAMEWORK_DIRECTORY .'js/media-uploader.js', array( 'jquery' ), Options_Framework::VERSION ); 116 | wp_enqueue_script( 'of-media-uploader' ); 117 | wp_localize_script( 'of-media-uploader', 'optionsframework_l10n', array( 118 | 'upload' => __( '上传', 'textdomain' ), 119 | 'remove' => __( '删除', 'textdomain' ) 120 | ) ); 121 | } 122 | } -------------------------------------------------------------------------------- /core/panel/js/media-uploader.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($){ 2 | 3 | var optionsframework_upload; 4 | var optionsframework_selector; 5 | 6 | function optionsframework_add_file(event, selector) { 7 | 8 | var upload = $(".uploaded-file"), frame; 9 | var $el = $(this); 10 | optionsframework_selector = selector; 11 | 12 | event.preventDefault(); 13 | 14 | // If the media frame already exists, reopen it. 15 | if ( optionsframework_upload ) { 16 | optionsframework_upload.open(); 17 | } else { 18 | // Create the media frame. 19 | optionsframework_upload = wp.media.frames.optionsframework_upload = wp.media({ 20 | // Set the title of the modal. 21 | title: $el.data('choose'), 22 | 23 | // Customize the submit button. 24 | button: { 25 | // Set the text of the button. 26 | text: $el.data('update'), 27 | // Tell the button not to close the modal, since we're 28 | // going to refresh the page when the image is selected. 29 | close: false 30 | } 31 | }); 32 | 33 | // When an image is selected, run a callback. 34 | optionsframework_upload.on( 'select', function() { 35 | // Grab the selected attachment. 36 | var attachment = optionsframework_upload.state().get('selection').first(); 37 | optionsframework_upload.close(); 38 | optionsframework_selector.find('.upload').val(attachment.attributes.url); 39 | if ( attachment.attributes.type == 'image' ) { 40 | optionsframework_selector.find('.screenshot').empty().hide().append('Remove').slideDown('fast'); 41 | } 42 | optionsframework_selector.find('.upload-button').unbind().addClass('remove-file').removeClass('upload-button').val(optionsframework_l10n.remove); 43 | optionsframework_selector.find('.of-background-properties').slideDown(); 44 | optionsframework_selector.find('.remove-image, .remove-file').on('click', function() { 45 | optionsframework_remove_file( $(this).parents('.section') ); 46 | }); 47 | }); 48 | 49 | } 50 | 51 | // Finally, open the modal. 52 | optionsframework_upload.open(); 53 | } 54 | 55 | function optionsframework_remove_file(selector) { 56 | selector.find('.remove-image').hide(); 57 | selector.find('.upload').val(''); 58 | selector.find('.of-background-properties').hide(); 59 | selector.find('.screenshot').slideUp(); 60 | selector.find('.remove-file').unbind().addClass('upload-button').removeClass('remove-file').val(optionsframework_l10n.upload); 61 | // We don't display the upload button if .upload-notice is present 62 | // This means the user doesn't have the WordPress 3.5 Media Library Support 63 | if ( $('.section-upload .upload-notice').length > 0 ) { 64 | $('.upload-button').remove(); 65 | } 66 | selector.find('.upload-button').on('click', function(event) { 67 | optionsframework_add_file(event, $(this).parents('.section')); 68 | }); 69 | } 70 | 71 | $('.remove-image, .remove-file').on('click', function() { 72 | optionsframework_remove_file( $(this).parents('.section') ); 73 | }); 74 | 75 | $('.upload-button').click( function( event ) { 76 | optionsframework_add_file(event, $(this).parents('.section')); 77 | }); 78 | 79 | }); -------------------------------------------------------------------------------- /core/panel/js/options-custom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Custom scripts needed for the colorpicker, image button selectors, 3 | * and navigation tabs. 4 | */ 5 | 6 | jQuery(document).ready(function($) { 7 | 8 | // Loads the color pickers 9 | $('.of-color').wpColorPicker(); 10 | 11 | // Image Options 12 | $('.of-radio-img-img').click(function(){ 13 | $(this).parent().parent().find('.of-radio-img-img').removeClass('of-radio-img-selected'); 14 | $(this).addClass('of-radio-img-selected'); 15 | }); 16 | 17 | $('.of-radio-img-label').hide(); 18 | $('.of-radio-img-img').show(); 19 | $('.of-radio-img-radio').hide(); 20 | 21 | // Loads tabbed sections if they exist 22 | if ( $('.nav-tab-wrapper').length > 0 ) { 23 | options_framework_tabs(); 24 | } 25 | 26 | function options_framework_tabs() { 27 | 28 | var $group = $('.group'), 29 | $navtabs = $('.nav-tab-wrapper li a'), 30 | active_tab = ''; 31 | 32 | // Hides all the .group sections to start 33 | $group.hide(); 34 | $('.nav-tab-wrapper li').removeClass('active'); 35 | 36 | // Find if a selected tab is saved in localStorage 37 | if ( typeof(localStorage) != 'undefined' ) { 38 | active_tab = localStorage.getItem('active_tab'); 39 | } 40 | 41 | // If active tab is saved and exists, load it's .group 42 | if ( active_tab != '' && $(active_tab).length ) { 43 | $(active_tab).fadeIn(); 44 | $(active_tab + '-tab').parent('li').addClass('active'); 45 | } else { 46 | $('.group:first').fadeIn(); 47 | $('.nav-tab-wrapper li:first').addClass('active'); 48 | } 49 | 50 | // Bind tabs clicks 51 | $navtabs.click(function(e) { 52 | 53 | e.preventDefault(); 54 | 55 | $('.nav-tab-wrapper li').removeClass('active'); 56 | 57 | $(this).parent('li').addClass('active'); 58 | $(this).blur(); 59 | 60 | if (typeof(localStorage) != 'undefined' ) { 61 | localStorage.setItem('active_tab', $(this).attr('href') ); 62 | } 63 | 64 | var selected = $(this).attr('href'); 65 | 66 | $group.hide(); 67 | $(selected).fadeIn(); 68 | 69 | }); 70 | } 71 | 72 | }); 73 | -------------------------------------------------------------------------------- /core/panel/options-framework-js.php: -------------------------------------------------------------------------------- 1 | 5 | 120 | 121 | 7 | * @license GPL-2.0+ 8 | * @link http://wptheming.com 9 | * @copyright 2010-2014 WP Theming 10 | * 11 | * @wordpress-plugin 12 | * Plugin Name: Options Framework 13 | * Plugin URI: http://wptheming.com 14 | * Description: A framework for building theme options. 15 | * Version: 1.9.0 16 | * Author: Devin Price 17 | * Author URI: http://wptheming.com 18 | * License: GPL-2.0+ 19 | * License URI: http://www.gnu.org/licenses/gpl-2.0.txt 20 | * Text Domain: optionsframework 21 | * Domain Path: /languages 22 | */ 23 | 24 | // If this file is called directly, abort. 25 | if ( ! defined( 'WPINC' ) ) { 26 | die; 27 | } 28 | 29 | // Don't load if optionsframework_init is already defined 30 | if (is_admin() && ! function_exists( 'optionsframework_init' ) ) : 31 | 32 | function optionsframework_init() { 33 | 34 | // If user can't edit theme options, exit 35 | if ( ! current_user_can( 'edit_theme_options' ) ) { 36 | return; 37 | } 38 | 39 | // Loads the required Options Framework classes. 40 | require plugin_dir_path( __FILE__ ) . 'includes/class-options-framework.php'; 41 | require plugin_dir_path( __FILE__ ) . 'includes/class-options-framework-admin.php'; 42 | require plugin_dir_path( __FILE__ ) . 'includes/class-options-interface.php'; 43 | require plugin_dir_path( __FILE__ ) . 'includes/class-options-media-uploader.php'; 44 | require plugin_dir_path( __FILE__ ) . 'includes/class-options-sanitization.php'; 45 | 46 | // Instantiate the options page. 47 | $options_framework_admin = new Options_Framework_Admin; 48 | $options_framework_admin->init(); 49 | 50 | // Instantiate the media uploader class 51 | $options_framework_media_uploader = new Options_Framework_Media_Uploader; 52 | $options_framework_media_uploader->init(); 53 | 54 | } 55 | 56 | add_action( 'init', 'optionsframework_init', 20 ); 57 | 58 | endif; 59 | 60 | 61 | /** 62 | * Helper function to return the theme option value. 63 | * If no value has been saved, it returns $default. 64 | * Needed because options are saved as serialized strings. 65 | * 66 | * Not in a class to support backwards compatibility in themes. 67 | */ 68 | if ( ! function_exists( 'get_boxmoe' ) ) : 69 | function get_boxmoe( $name, $default = false ) { 70 | 71 | $option_name = ''; 72 | 73 | // Gets option name as defined in the theme 74 | if ( function_exists( 'optionsframework_option_name' ) ) { 75 | $option_name = optionsframework_option_name(); 76 | } 77 | 78 | // Fallback option name 79 | if ( '' == $option_name ) { 80 | $option_name = get_option( 'stylesheet' ); 81 | $option_name = preg_replace( "/\W/", "_", strtolower( $option_name ) ); 82 | } 83 | 84 | // Get option settings from database 85 | $options = get_option( $option_name ); 86 | 87 | // Return specific option 88 | if ( isset( $options[$name] ) ) { 89 | return $options[$name]; 90 | } 91 | 92 | return $default; 93 | } 94 | endif; -------------------------------------------------------------------------------- /core/panel/settings/set-artice.php: -------------------------------------------------------------------------------- 1 | __('文章设置', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-admin-post', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'name' => __('文章新窗口打开开关', 'ui_boxmoe_com'), 20 | 'id' => 'boxmoe_article_new_window_switch', 21 | 'type' => "checkbox", 22 | 'std' => false, 23 | 'desc' => __('若开启则文章新窗口打开', 'ui_boxmoe_com'), 24 | ); 25 | $options[] = array( 26 | 'name' => __('开启所有文章形式支持', 'ui_boxmoe_com'), 27 | 'id' => 'boxmoe_article_support_switch', 28 | 'type' => "checkbox", 29 | 'std' => false, 30 | 'desc' => __('若开启则开启所有文章形式支持', 'ui_boxmoe_com'), 31 | ); 32 | $options[] = array( 33 | 'group' => 'start', 34 | 'group_title' => '缩略图尺寸自定义设定', 35 | 'name' => __('缩略图尺寸自定义开关', 'ui_boxmoe_com'), 36 | 'id' => 'boxmoe_article_thumbnail_size_switch', 37 | 'type' => "checkbox", 38 | 'std' => false, 39 | ); 40 | $options[] = array( 41 | 'name' => __('缩略图宽度', 'ui_boxmoe_com'), 42 | 'id' => 'boxmoe_article_thumbnail_width', 43 | 'type' => "text", 44 | 'std' => '300', 45 | 'class' => 'mini', 46 | ); 47 | $options[] = array( 48 | 'group' => 'end', 49 | 'name' => __('缩略图高度', 'ui_boxmoe_com'), 50 | 'id' => 'boxmoe_article_thumbnail_height', 51 | 'type' => "text", 52 | 'std' => '200', 53 | 'class' => 'mini', 54 | ); 55 | $options[] = array( 56 | 'group' => 'start', 57 | 'group_title' => '文章缩略图随机API', 58 | 'name' => __('文章缩略图随机API', 'ui_boxmoe_com'), 59 | 'id' => 'boxmoe_article_thumbnail_random_api', 60 | 'type' => "checkbox", 61 | 'std' => false, 62 | 'desc' => __('文章缩略图随机API仅在文章没有设置缩略图时生效', 'ui_boxmoe_com'), 63 | ); 64 | $options[] = array( 65 | 'group' => 'end', 66 | 'name' => __('文章缩略图随机API URL', 'ui_boxmoe_com'), 67 | 'id' => 'boxmoe_article_thumbnail_random_api_url', 68 | 'type' => "text", 69 | 'class' => '', 70 | 'std' => 'https://api.boxmoe.com/random.php?size=small', 71 | 'desc' => __('文章缩略图随机API URL', 'ui_boxmoe_com'), 72 | ); 73 | $options[] = array( 74 | 'name' => __('文章列表分页模式', 'ui_boxmoe_com'), 75 | 'id' => 'boxmoe_article_paging_type', 76 | 'std' => "multi", 77 | 'type' => "radio", 78 | 'options' => array( 79 | 'next' => __('上一页 和 下一页', 'ui_boxmoe_com'), 80 | 'multi' => __('页码 1 2 3 ', 'ui_boxmoe_com'), 81 | //'loadmore' => __('点击加载更多(未使用)', 'ui_boxmoe_com'), 82 | )); 83 | $options[] = array( 84 | 'group' => 'start', 85 | 'group_title' => '文章打赏&点赞设置', 86 | 'name' => __('点赞开关', 'ui_boxmoe_com'), 87 | 'id' => 'boxmoe_like_switch', 88 | 'type' => "checkbox", 89 | 'std' => false, 90 | ); 91 | $options[] = array( 92 | 'name' => __('文章打赏开关', 'ui_boxmoe_com'), 93 | 'id' => 'boxmoe_reward_switch', 94 | 'type' => "checkbox", 95 | 'std' => false, 96 | 'desc' => __('若开启则显示打赏按钮', 'ui_boxmoe_com'), 97 | ); 98 | 99 | $options[] = array( 100 | 'name' => __('打赏二维码-微信', 'ui_boxmoe_com'), 101 | 'id' => 'boxmoe_reward_qrcode_weixin', 102 | 'type' => "text", 103 | 'std' => '', 104 | 'desc' => __('打赏二维码-微信二维码地址', 'ui_boxmoe_com'), 105 | ); 106 | $options[] = array( 107 | 'group' => 'end', 108 | 'name' => __('打赏二维码-支付宝', 'ui_boxmoe_com'), 109 | 'id' => 'boxmoe_reward_qrcode_alipay', 110 | 'type' => "text", 111 | 'std' => '', 112 | 'desc' => __('打赏二维码-支付宝二维码地址', 'ui_boxmoe_com'), 113 | ); 114 | 115 | -------------------------------------------------------------------------------- /core/panel/settings/set-assets.php: -------------------------------------------------------------------------------- 1 | __('静态加速', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-performance', 16 | 'type' => 'heading'); 17 | $options[] = array( 18 | 'group' => 'start', 19 | 'group_title' => '静态资源加速设置项', 20 | 'name' => __('静态资源加速开关', 'ui_boxmoe_com'), 21 | 'id' => 'boxmoe_cdn_assets_switch', 22 | 'type' => "checkbox", 23 | 'std' => false, 24 | ); 25 | $options[] = array( 26 | 'group' => 'end', 27 | 'name' => __('静态资源加速url', 'ui_boxmoe_com'), 28 | 'id' => 'boxmoe_cdn_assets_url', 29 | 'type' => "text", 30 | 'std' => '', 31 | 'desc' => __('(如https://domain.com/lolimeow/assets),链接结尾不要带"/"', 'ui_boxmoe_com'), 32 | ); 33 | $gravatar_array = array( 34 | 'cravatar' => __('cravatar源', 'ui_boxmoe_com'), 35 | 'weavatar' => __('cravatar备用源', 'ui_boxmoe_com'), 36 | 'qiniu' => __('七牛源', 'ui_boxmoe_com'), 37 | 'geekzu' => __('极客源', 'ui_boxmoe_com'), 38 | 'v2excom' => __('v2ex源', 'ui_boxmoe_com'), 39 | 'cn' => __('默认CN源', 'ui_boxmoe_com'), 40 | 'ssl' => __('默认SSL源', 'ui_boxmoe_com'), 41 | ); 42 | $options[] = array( 43 | 'group' => 'start', 44 | 'group_title' => '前端头像加速服务器', 45 | 'name' => __('Gravatar头像', 'ui_boxmoe_com'), 46 | 'desc' => __('(通过镜像服务器可对gravatar头像进行加速)', 'ui_boxmoe_com'), 47 | 'id' => 'boxmoe_gravatar_url', 48 | 'std' => 'lolinet', 49 | 'type' => 'select', 50 | 'class' => 'mini', //mini, tiny, small 51 | 'options' => $gravatar_array); 52 | 53 | $qqravatar_array = array( 54 | 'Q1' => __('QQ官方服务器1', 'ui_boxmoe_com'), 55 | 'Q2' => __('QQ官方服务器2', 'ui_boxmoe_com'), 56 | 'Q3' => __('QQ官方服务器3', 'ui_boxmoe_com'), 57 | 'Q4' => __('QQ官方服务器4', 'ui_boxmoe_com'), 58 | ); 59 | $options[] = array( 60 | 'name' => __('QQ头像', 'ui_boxmoe_com'), 61 | 'desc' => __('(如果用户是QQ邮箱则调用QQ头像)', 'ui_boxmoe_com'), 62 | 'id' => 'boxmoe_qqavatar_url', 63 | 'group' => 'end', 64 | 'std' => 'Q2', 65 | 'type' => 'select', 66 | 'class' => 'mini', //mini, tiny, small 67 | 'options' => $qqravatar_array); -------------------------------------------------------------------------------- /core/panel/settings/set-banner.php: -------------------------------------------------------------------------------- 1 | __( 'Banner设置', 'ui_boxmoe_com' ), 15 | 'icon' => 'dashicons-format-gallery', 16 | 'desc' => __( '(导航下的图片设置)', 'ui_boxmoe_com' ), 17 | 'type' => 'heading' 18 | ); 19 | $options[] = array( 20 | 'group' => 'start', 21 | 'group_title' => 'Banner欢迎语一言设置', 22 | 'name' => __( 'Banner欢迎语', 'ui_boxmoe_com' ), 23 | 'desc' => __('(留空则不显示)', 'ui_boxmoe_com'), 24 | 'id' => 'boxmoe_banner_font', 25 | 'std' => 'Hello! 欢迎来到盒子萌!', 26 | 'type' => 'text'); 27 | $options[] = array( 28 | 'name' => __('banner一言开关', 'ui_boxmoe_com'), 29 | 'id' => 'boxmoe_banner_hitokoto_switch', 30 | 'type' => "checkbox", 31 | 'std' => false, 32 | ); 33 | $hitokoto_array = array( 34 | 'a' => __('动画', 'ui_boxmoe_com'), 35 | 'b' => __('漫画', 'ui_boxmoe_com'), 36 | 'c' => __('游戏', 'ui_boxmoe_com'), 37 | 'd' => __('文学', 'ui_boxmoe_com'), 38 | 'e' => __('原创', 'ui_boxmoe_com'), 39 | 'f' => __('来自网络', 'ui_boxmoe_com'), 40 | 'g' => __('其他', 'ui_boxmoe_com'), 41 | 'h' => __('影视', 'ui_boxmoe_com'), 42 | 'i' => __('诗词', 'ui_boxmoe_com'), 43 | 'j' => __('网易云', 'ui_boxmoe_com'), 44 | 'k' => __('哲学', 'ui_boxmoe_com'), 45 | ); 46 | $options[] = array( 47 | 'group' => 'end', 48 | 'name' => __('选择一言句子类型', 'ui_boxmoe_com'), 49 | 'id' => 'boxmoe_banner_hitokoto_text', 50 | 'type' => 'select', 51 | 'options' => $hitokoto_array); 52 | $options[] = array( 53 | 'group' => 'start', 54 | 'group_title' => '自定义banner高度开关', 55 | 'id' => 'boxmoe_banner_height_switch', 56 | 'type' => "checkbox", 57 | 'std' => false, 58 | ); 59 | $options[] = array( 60 | 'name' => __( '[PC端]Banner高度 留空则默认580', 'ui_boxmoe_com' ), 61 | 'id' => 'boxmoe_banner_height', 62 | 'std' => '580', 63 | 'class' => 'mini', 64 | 'type' => 'text'); 65 | $options[] = array( 66 | 'name' => __( '[手机端]Banner高度 留空默认480', 'ui_boxmoe_com' ), 67 | 'id' => 'boxmoe_banner_height_m', 68 | 'std' => '480', 69 | 'class' => 'mini', 70 | 'group' => 'end', 71 | 'type' => 'text'); 72 | $options[] = array( 73 | 'name' => __('自定义Banner背景图', 'ui_boxmoe_com'), 74 | 'id' => 'boxmoe_banner_url', 75 | 'std' => $image_path.'/banner/assets/images/banner.jpg', 76 | 'type' => 'upload'); 77 | $options[] = array( 78 | 'group' => 'start', 79 | 'group_title' => 'Banner随机图片', 80 | 'name' => __('Banner开启本地随机图片', 'ui_boxmoe_com'), 81 | 'desc' => __('(自动检索本地assets/images/banner/文件夹的jpg\jpeg\png\gif\webp图片)', 'ui_boxmoe_com'), 82 | 'id' => 'boxmoe_banner_rand_switch', 83 | 'class' => 'mini', 84 | 'std' => false, 85 | 'type' => 'checkbox'); 86 | $options[] = array( 87 | 'name' => __('使用外链APi-Banner图片', 'ui_boxmoe_com'), 88 | 'desc' => __('(开启后上方本地设置图片功能全失效)', 'ui_boxmoe_com'), 89 | 'id' => 'boxmoe_banner_api_switch', 90 | 'type' => "checkbox", 91 | 'std' => false, 92 | ); 93 | $options[] = array( 94 | 'group' => 'end', 95 | 'name' => __('图片外链APi链接', 'ui_boxmoe_com'), 96 | 'id' => 'boxmoe_banner_api_url', 97 | 'std' => 'https://api.boxmoe.com/random.php?size=mw1024', 98 | 'type' => 'text'); -------------------------------------------------------------------------------- /core/panel/settings/set-basis.php: -------------------------------------------------------------------------------- 1 | __('基础设置', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-admin-settings', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'group' => 'start', 20 | 'group_title' => '博客布局效果设置', 21 | 'name' => __('博客布局', 'ui_boxmoe_com'), 22 | 'id' => 'boxmoe_blog_layout', 23 | 'std' => "one", 24 | 'type' => "radio", 25 | 'options' => array( 26 | 'one' => __('单栏布局', 'ui_boxmoe_com'), 27 | 'two' => __('双栏布局', 'ui_boxmoe_com') 28 | )); 29 | $options[] = array( 30 | 'name' => __('布局边框', 'ui_boxmoe_com'), 31 | 'id' => 'boxmoe_blog_border', 32 | 'std' => "default", 33 | 'type' => "radio", 34 | 'options' => array( 35 | 'default' => __('无边框效果', 'ui_boxmoe_com'), 36 | 'border' => __('漫画边框效果', 'ui_boxmoe_com'), 37 | 'shadow' => __('阴影边框效果', 'ui_boxmoe_com'), 38 | 'lines' => __('线条边框效果', 'ui_boxmoe_com') 39 | )); 40 | $options[] = array( 41 | 'name' => __('懒加载自定义占位图', 'ui_boxmoe_com'), 42 | 'id' => 'boxmoe_lazy_load_images', 43 | 'std' => $image_path.'loading.gif', 44 | 'class' => '', 45 | 'type' => 'text'); 46 | 47 | $options[] = array( 48 | 'name' => __('页面过度动画', 'ui_boxmoe_com'), 49 | 'id' => 'boxmoe_page_loading_switch', 50 | 'type' => "checkbox", 51 | 'std' => false, 52 | ); 53 | $options[] = array( 54 | 'name' => __('网页飘落樱花', 'ui_boxmoe_com'), 55 | 'id' => 'boxmoe_sakura_switch', 56 | 'type' => "checkbox", 57 | 'std' => false, 58 | ); 59 | $options[] = array( 60 | 'group' => 'end', 61 | 'name' => __('悼念模式-全站变灰', 'ui_boxmoe_com'), 62 | 'id' => 'boxmoe_body_grey_switch', 63 | 'type' => "checkbox", 64 | 'std' => false, 65 | ); 66 | $options[] = array( 67 | 'group' => 'start', 68 | 'group_title' => '节日灯笼开关设置', 69 | 'id' => 'boxmoe_festival_lantern_switch', 70 | 'type' => "checkbox", 71 | 'std' => false, 72 | ); 73 | $options[] = array( 74 | 'name' => __( '灯笼文字(1)', 'ui_boxmoe_com' ), 75 | 'id' => 'boxmoe_lanternfont1', 76 | 'std' => '新', 77 | 'class' => 'mini', 78 | 'type' => 'text'); 79 | $options[] = array( 80 | 'name' => __( '灯笼文字(2)', 'ui_boxmoe_com' ), 81 | 'id' => 'boxmoe_lanternfont2', 82 | 'std' => '春', 83 | 'class' => 'mini', 84 | 'type' => 'text'); 85 | $options[] = array( 86 | 'name' => __( '灯笼文字(3)', 'ui_boxmoe_com' ), 87 | 'id' => 'boxmoe_lanternfont3', 88 | 'std' => '快', 89 | 'class' => 'mini', 90 | 'type' => 'text'); 91 | $options[] = array( 92 | 'group' => 'end', 93 | 'name' => __( '灯笼文字(4)', 'ui_boxmoe_com' ), 94 | 'id' => 'boxmoe_lanternfont4', 95 | 'std' => '乐', 96 | 'class' => 'mini', 97 | 'type' => 'text'); 98 | $options[] = array( 99 | 'name' => __( 'LOGO设置', 'ui_boxmoe_com' ), 100 | 'id' => 'boxmoe_logo_src', 101 | 'desc' => __(' ', 'ui_boxmoe_com'), 102 | 'std' => $image_path.'logo.png', 103 | 'type' => 'upload'); 104 | $options[] = array( 105 | 'name' => __( 'Favicon地址', 'ui_boxmoe_com' ), 106 | 'id' => 'boxmoe_favicon_src', 107 | 'std' => $image_path.'favicon.ico', 108 | 'type' => 'upload'); 109 | $options[] = array( 110 | 'name' => __('分类链接去除category标识', 'ui_boxmoe_com'), 111 | 'desc' => __('(需主机伪静态,开关都需要 后台导航的 设置>固定链接 点保存一次)', 'ui_boxmoe_com'), 112 | 'id' => 'boxmoe_no_categoty', 113 | 'type' => "checkbox", 114 | 'std' => false, 115 | ); 116 | $options[] = array( 117 | 'group' => 'start', 118 | 'group_title' => '网页右侧看板开关', 119 | 'id' => 'boxmoe_lolijump_switch', 120 | 'type' => "checkbox", 121 | 'std' => false, 122 | ); 123 | $options[] = array( 124 | 'group' => 'end', 125 | 'name' => __('选择前端看板形象', 'ui_boxmoe_com'), 126 | 'id' => 'boxmoe_lolijump_img', 127 | 'type' => "radio", 128 | 'std' => 'lolisister1', 129 | 'options' => array( 130 | 'lolisister1' => __(' 看板萝莉-姐姐 ', 'ui_boxmoe_com'), 131 | 'lolisister2' => __(' 看板萝莉-妹妹', 'ui_boxmoe_com'), 132 | 'dance' => __(' 看板娘-舞娘娘', 'ui_boxmoe_com'), 133 | 'meow' => __(' 看板娘-喵小娘', 'ui_boxmoe_com'), 134 | 'lemon' => __(' 看板妹-柠檬妹', 'ui_boxmoe_com'), 135 | 'bear' => __(' 看板熊-熊宝宝', 'ui_boxmoe_com'), 136 | )); 137 | 138 | $options[] = array( 139 | 'group' => 'start', 140 | 'group_title' => '底部设置', 141 | 'name' => __('底部显示页面执行时间', 'ui_boxmoe_com'), 142 | 'desc' => __('(默认关闭,开启后底部显示页面执行时间)', 'ui_boxmoe_com'), 143 | 'id' => 'boxmoe_footer_dataquery_switch', 144 | 'type' => "checkbox", 145 | 'std' => false, 146 | ); 147 | $options[] = array( 148 | 'name' => __('网站底部导航链接', 'ui_boxmoe_com'), 149 | 'id' => 'boxmoe_footer_seo', 150 | 'std' => '
  • 网站地图
  • '."\n", 151 | 'desc' => __('(网站地图可自行使用sitemap插件自动生成)', 'ui_boxmoe_com'), 152 | 'settings' => array('rows' => 3), 153 | 'type' => 'textarea'); 154 | $options[] = array( 155 | 'name' => __('网站底部自定义信息(如备案号支持HTML代码)', 'ui_boxmoe_com'), 156 | 'id' => 'boxmoe_footer_info', 157 | 'std' => '本站使用Wordpress创作'."\n", 158 | 'settings' => array('rows' => 3), 159 | 'type' => 'textarea'); 160 | $options[] = array( 161 | 'name' => __('统计代码', 'ui_boxmoe_com'), 162 | 'desc' => __('(底部第三方流量数据统计代码)', 'ui_boxmoe_com'), 163 | 'id' => 'boxmoe_trackcode', 164 | 'std' => '统计代码', 165 | 'settings' => array('rows' => 3), 166 | 'type' => 'textarea'); 167 | $options[] = array( 168 | 'group' => 'end', 169 | 'name' => __('自定义代码', 'ui_boxmoe_com'), 170 | 'desc' => __('(适用于自定义如css js代码置于底部加载)', 'ui_boxmoe_com'), 171 | 'id' => 'boxmoe_diy_code_footer', 172 | 'std' => '', 173 | 'settings' => array('rows' => 3), 174 | 'type' => 'textarea'); 175 | $options[] = array( 176 | 'group' => 'start', 177 | 'group_title' => '底部运行天数设置', 178 | 'name' => __('底部运行天数开关', 'ui_boxmoe_com'), 179 | 'id' => 'boxmoe_footer_running_days_switch', 180 | 'type' => 'checkbox', 181 | 'std' => false, 182 | ); 183 | $options[] = array( 184 | 'name' => __('建站时间', 'ui_boxmoe_com'), 185 | 'id' => 'boxmoe_footer_running_days_time', 186 | 'type' => 'text', 187 | 'class' => 'mini', 188 | 'std' => '2025-01-01', 189 | ); 190 | $options[] = array( 191 | 'name' => __('运行天数自定义文字前缀', 'ui_boxmoe_com'), 192 | 'id' => 'boxmoe_footer_running_days_prefix', 193 | 'type' => 'text', 194 | 'class' => 'small', 195 | 'std' => '本站已稳定运行了', 196 | ); 197 | $options[] = array( 198 | 'group' => 'end', 199 | 'name' => __('运行天数自定义文字后缀', 'ui_boxmoe_com'), 200 | 'id' => 'boxmoe_footer_running_days_suffix', 201 | 'type' => 'text', 202 | 'class' => 'small', 203 | 'std' => '天', 204 | ); 205 | -------------------------------------------------------------------------------- /core/panel/settings/set-comment.php: -------------------------------------------------------------------------------- 1 | __('评论设置', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-admin-comments', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'group' => 'start', 20 | 'group_title' => '评论开关设置', 21 | 'name' => __('全站评论关闭', 'ui_boxmoe_com'), 22 | 'id' => 'boxmoe_comment_switch', 23 | 'type' => "checkbox", 24 | 'std' => false, 25 | ); 26 | $options[] = array( 27 | 'name' => __('仅登录评论开关', 'ui_boxmoe_com'), 28 | 'id' => 'boxmoe_comment_login_switch', 29 | 'type' => "checkbox", 30 | 'std' => false, 31 | ); 32 | $options[] = array( 33 | 'name' => __('禁止纯英文评论', 'ui_boxmoe_com'), 34 | 'id' => 'boxmoe_comment_english_switch', 35 | 'type' => "checkbox", 36 | 'std' => false, 37 | ); 38 | $options[] = array( 39 | 'group' => 'end', 40 | 'name' => __('博主标签自定义', 'ui_boxmoe_com'), 41 | 'id' => 'boxmoe_comment_blogger_tag', 42 | 'type' => "text", 43 | 'std' => '博主', 44 | 'desc' => __('博主标签,留空则显示博主', 'ui_boxmoe_com'), 45 | 'class' => 'mini', 46 | ); -------------------------------------------------------------------------------- /core/panel/settings/set-msg.php: -------------------------------------------------------------------------------- 1 | __('通知设置', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-admin-users', 16 | 'type' => 'heading'); 17 | $options[] = array( 18 | 'name' => __('消息设置说明', 'ui_boxmoe_com'), 19 | 'id' => 'boxmoe_msg_notice_info', 20 | 'desc' => __(' 21 |

    1.SMTP发件系统开启需要在SMTP设置中配置SMTP发件信息SMTP设置

    22 |

    2.新评论新会员注册通知博主消息,邮件和机器人建议2选1,降低服务器压力,没必要双开双通知

    23 | ', 'ui_boxmoe_com'), 24 | 'type' => 'info'); 25 | 26 | $options[] = array( 27 | 'group' => 'start', 28 | 'group_title' => 'SMTP发件消息通知设置开关', 29 | 'name' => __('SMTP发件系统开关', 'ui_boxmoe_com'), 30 | 'id' => 'boxmoe_smtp_mail_switch', 31 | 'type' => "checkbox", 32 | 'std' => false, 33 | 'desc' => __('开启后检查smtp设置', 'ui_boxmoe_com'), 34 | ); 35 | $options[] = array( 36 | 'name' => __('新评论通知博主', 'ui_boxmoe_com'), 37 | 'id' => 'boxmoe_new_comment_notice_switch', 38 | 'type' => 'checkbox', 39 | 'std' => false, 40 | 'desc' => __('若开启则新评论通知将使用SMTP发件系统', 'ui_boxmoe_com'), 41 | ); 42 | $options[] = array( 43 | 'group' => 'end', 44 | 'name' => __('新会员注册通知博主', 'ui_boxmoe_com'), 45 | 'id' => 'boxmoe_new_user_register_notice_switch', 46 | 'type' => 'checkbox', 47 | 'std' => false, 48 | 'desc' => __('若开启则新会员注册通知将使用SMTP发件系统', 'ui_boxmoe_com'), 49 | ); 50 | //机器人消息通知 51 | $options[] = array( 52 | 'group' => 'start', 53 | 'group_title' => '机器人消息通知设置开关', 54 | 'name' => __('机器人消息通知', 'ui_boxmoe_com'), 55 | 'id' => 'boxmoe_robot_notice_switch', 56 | 'type' => 'checkbox', 57 | 'std' => false, 58 | 'desc' => __('若开启则机器人消息通知将使用机器人系统', 'ui_boxmoe_com'), 59 | ); 60 | //新评论通知 61 | $options[] = array( 62 | 'name' => __('新评论通知博主', 'ui_boxmoe_com'), 63 | 'id' => 'boxmoe_new_comment_notice_robot_switch', 64 | 'type' => 'checkbox', 65 | 'std' => false, 66 | 'desc' => __('若开启则新评论通知将使用机器人消息通知', 'ui_boxmoe_com'), 67 | ); 68 | //新会员注册通知 69 | $options[] = array( 70 | 'group' => 'end', 71 | 'name' => __('新会员注册通知博主', 'ui_boxmoe_com'), 72 | 'id' => 'boxmoe_new_user_register_notice_robot_switch', 73 | 'type' => 'checkbox', 74 | 'std' => false, 75 | 'desc' => __('若开启则新会员注册通知将使用机器人消息通知', 'ui_boxmoe_com'), 76 | ); 77 | $options[] = array( 78 | 'name' => __('QQ机器人说明', 'ui_boxmoe_com'), 79 | 'id' => 'boxmoe_robot_notice_info', 80 | 'desc' => __(' 81 |

    机器人接口基于NapCatQQ开发,需要先安装NapCatQQ,然后获取机器人接口URL

    82 | ', 'ui_boxmoe_com'), 83 | 'type' => 'info'); 84 | $options[] = array( 85 | 'group' => 'start', 86 | 'group_title' => '机器人接口配置', 87 | 'name' => __('机器人渠道选择', 'ui_boxmoe_com'), 88 | 'id' => 'boxmoe_robot_channel', 89 | 'type' => 'radio', 90 | 'std' => 'qq_user', 91 | 'options' => array( 92 | 'qq_group' => __('QQ群', 'ui_boxmoe_com'), 93 | 'qq_user' => __('个人QQ', 'ui_boxmoe_com'), 94 | 'dingtalk' => __('钉钉', 'ui_boxmoe_com'), 95 | 'telegram' => __('TG', 'ui_boxmoe_com'), 96 | ), 97 | ); 98 | $options[] = array( 99 | 'name' => __('机器人接口URL', 'ui_boxmoe_com'), 100 | 'id' => 'boxmoe_robot_api_url', 101 | 'type' => 'text', 102 | 'std' => '', 103 | 'desc' => __('请输入机器人接口URL', 'ui_boxmoe_com'), 104 | ); 105 | $options[] = array( 106 | 'name' => __('机器人接口密钥', 'ui_boxmoe_com'), 107 | 'id' => 'boxmoe_robot_api_key', 108 | 'type' => 'text', 109 | 'class' => 'small', 110 | 'std' => '', 111 | 'desc' => __('请输入机器人接口密钥/TOKEN,留空则不使用', 'ui_boxmoe_com'), 112 | ); 113 | $options[] = array( 114 | 'group' => 'end', 115 | 'name' => __('消息接受人', 'ui_boxmoe_com'), 116 | 'id' => 'boxmoe_robot_msg_user', 117 | 'class' => 'mini', 118 | 'type' => 'text', 119 | 'std' => '', 120 | 'desc' => __('QQ号码\群号、TG用户\群组\频道ID,留空则不使用', 'ui_boxmoe_com'), 121 | ); 122 | 123 | 124 | -------------------------------------------------------------------------------- /core/panel/settings/set-optimize.php: -------------------------------------------------------------------------------- 1 | __('系统优化', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-performance', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'group' => 'start', 20 | 'group_title' => '写作类相关开关优化', 21 | 'name' => __('关闭古腾堡编辑器', 'ui_boxmoe_com'), 22 | 'id' => 'boxmoe_gutenberg_switch', 23 | 'type' => "checkbox", 24 | 'std' => false, 25 | 'desc' => __('若开启则关闭古腾堡编辑器', 'ui_boxmoe_com'), 26 | ); 27 | $options[] = array( 28 | 'name' => __('禁用文章自动保存', 'ui_boxmoe_com'), 29 | 'id' => 'boxmoe_autosave_switch', 30 | 'type' => "checkbox", 31 | 'std' => false, 32 | 'desc' => __('若开启则禁用文章自动保存', 'ui_boxmoe_com'), 33 | ); 34 | $options[] = array( 35 | 'name' => __('禁用文章修订版本', 'ui_boxmoe_com'), 36 | 'id' => 'boxmoe_revision_switch', 37 | 'type' => "checkbox", 38 | 'std' => false, 39 | 'desc' => __('若开启则禁用文章修订版本', 'ui_boxmoe_com'), 40 | ); 41 | $options[] = array( 42 | 'group' => 'end', 43 | 'name' => __('禁用XMLRPC接口', 'ui_boxmoe_com'), 44 | 'id' => 'boxmoe_xmlrpc_switch', 45 | 'type' => "checkbox", 46 | 'std' => false, 47 | 'desc' => __('建议开启,若需要使用接口发文章就关闭', 'ui_boxmoe_com'), 48 | ); 49 | $options[] = array( 50 | 'group' => 'start', 51 | 'group_title' => 'WP头部底部多余代码移除禁用设置', 52 | 'name' => __('头部代码优化', 'ui_boxmoe_com'), 53 | 'id' => 'boxmoe_wphead_switch', 54 | 'type' => "checkbox", 55 | 'std' => false, 56 | 'desc' => __('建议开启,如果插件前端不能正常使用,请不要开启', 'ui_boxmoe_com'), 57 | ); 58 | $options[] = array( 59 | 'name' => __('jQuery兼容开关', 'ui_boxmoe_com'), 60 | 'id' => 'boxmoe_jquery_switch', 61 | 'type' => "checkbox", 62 | 'std' => true, 63 | 'desc' => __('默认开启,如果不使用jquery的代码插件可关闭', 'ui_boxmoe_com'), 64 | ); 65 | $options[] = array( 66 | 'name' => __('移除dns-prefetch', 'ui_boxmoe_com'), 67 | 'id' => 'boxmoe_dns_prefetch_switch', 68 | 'type' => "checkbox", 69 | 'std' => false, 70 | 'desc' => __('建议开启', 'ui_boxmoe_com'), 71 | ); 72 | $options[] = array( 73 | 'name' => __('移除feed', 'ui_boxmoe_com'), 74 | 'id' => 'boxmoe_feed_switch', 75 | 'type' => "checkbox", 76 | 'std' => false, 77 | 'desc' => __('建议开启', 'ui_boxmoe_com'), 78 | ); 79 | $options[] = array( 80 | 'name' => __('移除 Emojis', 'ui_boxmoe_com'), 81 | 'id' => 'boxmoe_emojis_switch', 82 | 'type' => "checkbox", 83 | 'std' => false, 84 | 'desc' => __('建议开启', 'ui_boxmoe_com'), 85 | ); 86 | $options[] = array( 87 | 'group' => 'end', 88 | 'name' => __('移除 embeds', 'ui_boxmoe_com'), 89 | 'id' => 'boxmoe_embeds_switch', 90 | 'type' => "checkbox", 91 | 'std' => false, 92 | 'desc' => __('建议开启', 'ui_boxmoe_com'), 93 | ); 94 | $options[] = array( 95 | 'group' => 'start', 96 | 'group_title' => '安全项优化设置', 97 | 'name' => __('禁止非管理员访问后台', 'ui_boxmoe_com'), 98 | 'id' => 'boxmoe_no_admin_switch', 99 | 'type' => "checkbox", 100 | 'std' => true, 101 | 'desc' => __('默认开启,则禁止非管理员访问后台', 'ui_boxmoe_com'), 102 | ); 103 | $options[] = array( 104 | 'name' => __('优化数据库-自动清理', 'ui_boxmoe_com'), 105 | 'id' => 'boxmoe_optimize_database_switch', 106 | 'type' => "checkbox", 107 | 'std' => false, 108 | 'desc' => __('若开启,则每日0点自动优化数据表', 'ui_boxmoe_com'), 109 | ); 110 | $options[] = array( 111 | 'name' => __('移除WordPress版本号', 'ui_boxmoe_com'), 112 | 'desc' => __('若开启,则移除WordPress版本号', 'ui_boxmoe_com'), 113 | 'id' => 'boxmoe_remove_wp_version_switch', 114 | 'type' => "checkbox", 115 | 'std' => false, 116 | ); 117 | $options[] = array( 118 | 'name' => __('禁用REST API', 'ui_boxmoe_com'), 119 | 'desc' => __('若开启,则禁用REST API', 'ui_boxmoe_com'), 120 | 'id' => 'boxmoe_disable_rest_api_switch', 121 | 'type' => "checkbox", 122 | 'std' => false, 123 | ); 124 | $options[] = array( 125 | 'name' => __('禁止Trackbacks', 'ui_boxmoe_com'), 126 | 'desc' => __('建议开启', 'ui_boxmoe_com'), 127 | 'id' => 'boxmoe_trackbacks_switch', 128 | 'type' => "checkbox", 129 | 'std' => false, 130 | ); 131 | $options[] = array( 132 | 'group' => 'end', 133 | 'name' => __('禁止Pingback', 'ui_boxmoe_com'), 134 | 'desc' => __('建议开启', 'ui_boxmoe_com'), 135 | 'id' => 'boxmoe_pingbacks_switch', 136 | 'type' => "checkbox", 137 | 'std' => false, 138 | ); -------------------------------------------------------------------------------- /core/panel/settings/set-seo.php: -------------------------------------------------------------------------------- 1 | __('SEO优化', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-chart-line', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'group' => 'start', 20 | 'group_title' => '搜索引擎推送设置', 21 | 'name' => __('百度推送开关', 'ui_boxmoe_com'), 22 | 'id' => 'boxmoe_baidu_submit_switch', 23 | 'desc' => __('开启后下方填写百度推送Token Key', 'ui_boxmoe_com'), 24 | 'class' => 'small', 25 | 'type' => "checkbox", 26 | 'std' => false, 27 | ); 28 | $options[] = array( 29 | 'id' => 'boxmoe_baidu_token', 30 | 'std' => '', 31 | 'class' => 'small', 32 | 'type' => 'text' 33 | ); 34 | 35 | $options[] = array( 36 | 'name' => __('Bing推送开关', 'ui_boxmoe_com'), 37 | 'id' => 'boxmoe_bing_submit_switch', 38 | 'desc' => __('开启后下方填写Bing推送API Key', 'ui_boxmoe_com'), 39 | 'type' => "checkbox", 40 | 'std' => false, 41 | ); 42 | $options[] = array( 43 | 'id' => 'boxmoe_bing_api_key', 44 | 'std' => '', 45 | 'class' => 'small', 46 | 'type' => 'text' 47 | ); 48 | 49 | $options[] = array( 50 | 'name' => __('360推送开关', 'ui_boxmoe_com'), 51 | 'desc' => __('开启后下方填写360推送API Key', 'ui_boxmoe_com'), 52 | 'id' => 'boxmoe_360_submit_switch', 53 | 'type' => "checkbox", 54 | 'std' => false, 55 | ); 56 | $options[] = array( 57 | 'id' => 'boxmoe_360_api_key', 58 | 'std' => '', 59 | 'class' => 'small', 60 | 'type' => 'text' 61 | ); 62 | 63 | $options[] = array( 64 | 'name' => __('谷歌推送开关', 'ui_boxmoe_com'), 65 | 'id' => 'boxmoe_google_submit_switch', 66 | 'desc' => __('开启后下方填写谷歌推送API Key', 'ui_boxmoe_com'), 67 | 'type' => "checkbox", 68 | 'std' => false, 69 | ); 70 | $options[] = array( 71 | 'id' => 'boxmoe_google_api_key', 72 | 'std' => '', 73 | 'class' => 'small', 74 | 'group' => 'end', 75 | 'type' => 'text' 76 | ); 77 | 78 | $options[] = array( 79 | 'group' => 'start', 80 | 'group_title' => '网站头部设置', 81 | 'name' => __('网站标题连接符', 'ui_boxmoe_com'), 82 | 'id' => 'boxmoe_title_link', 83 | 'type' => "text", 84 | 'std' => '-', 85 | 'class' => 'mini', 86 | 'desc' => __('网站标题连接符,默认是"-"', 'ui_boxmoe_com'), 87 | ); 88 | $options[] = array( 89 | 'name' => __('网站关键词', 'ui_boxmoe_com'), 90 | 'id' => 'boxmoe_keywords', 91 | 'type' => "textarea", 92 | 'settings' => array('rows' => 3), 93 | 'std' => 'wordpress,boxmoe,lolimeow', 94 | 'desc' => __('网站关键词,多个关键词用英文逗号隔开', 'ui_boxmoe_com'), 95 | ); 96 | 97 | $options[] = array( 98 | 'name' => __('网站描述', 'ui_boxmoe_com'), 99 | 'id' => 'boxmoe_description', 100 | 'type' => "textarea", 101 | 'settings' => array('rows' => 3), 102 | 'std' => '这个一个wordpress网站的描述', 103 | 'desc' => __('网站描述', 'ui_boxmoe_com'), 104 | ); 105 | 106 | $options[] = array( 107 | 'name' => __('网站自动添加关键字和描述', 'ui_boxmoe_com'), 108 | 'desc' => __('(开启后所有页面将自动使用主题配置的关键字和描述)', 'ui_boxmoe_com'), 109 | 'id' => 'boxmoe_auto_keywords_description_switch', 110 | 'type' => "checkbox", 111 | 'std' => true, 112 | ); 113 | 114 | $options[] = array( 115 | 'group' => 'end', 116 | 'name' => __('自定义文章关键字和描述', 'ui_boxmoe_com'), 117 | 'desc' => __('(开启后你需要在编辑文章的时候书写关键字和描述,如果为空,将自动使用主题配置的关键字和描述;开启这个必须开启上面的"网站自动添加关键字和描述"开关)', 'ui_boxmoe_com'), 118 | 'id' => 'boxmoe_post_keywords_description_switch', 119 | 'type' => "checkbox", 120 | 'std' => false, 121 | ); -------------------------------------------------------------------------------- /core/panel/settings/set-social.php: -------------------------------------------------------------------------------- 1 | __('社交图标', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-share', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'group' => 'start', 20 | 'group_title' => '社交图标设置', 21 | 'name' => __('QQ', 'ui_boxmoe_com'), 22 | 'id' => 'boxmoe_social_qq', 23 | 'type' => 'text', 24 | 'std' => '10000', 25 | 'class' => 'mini', 26 | 'desc' => __('QQ号,留空则不显示', 'ui_boxmoe_com'), 27 | ); 28 | $options[] = array( 29 | 'name' => __('Email', 'ui_boxmoe_com'), 30 | 'id' => 'boxmoe_social_email', 31 | 'type' => 'text', 32 | 'std' => '', 33 | 'desc' => __('Email地址,留空则不显示', 'ui_boxmoe_com'), 34 | 'class' => 'mini', 35 | ); 36 | $options[] = array( 37 | 'name' => __('WeChat', 'ui_boxmoe_com'), 38 | 'id' => 'boxmoe_social_wechat', 39 | 'type' => 'text', 40 | 'std' => $image_path.'default-thumbnail.jpg', 41 | 'desc' => __('WeChat二维码链接,留空则不显示', 'ui_boxmoe_com'), 42 | 'class' => '', 43 | ); 44 | 45 | $options[] = array( 46 | 'name' => __('Weibo', 'ui_boxmoe_com'), 47 | 'id' => 'boxmoe_social_weibo', 48 | 'type' => 'text', 49 | 'std' => '', 50 | 'desc' => __('Weibo链接,留空则不显示', 'ui_boxmoe_com'), 51 | 'class' => 'small', 52 | ); 53 | $options[] = array( 54 | 'name' => __('Instagram', 'ui_boxmoe_com'), 55 | 'id' => 'boxmoe_social_instagram', 56 | 'type' => 'text', 57 | 'std' => '', 58 | 'desc' => __('Instagram链接,留空则不显示', 'ui_boxmoe_com'), 59 | 'class' => 'small', 60 | ); 61 | $options[] = array( 62 | 'name' => __('Telegram', 'ui_boxmoe_com'), 63 | 'id' => 'boxmoe_social_telegram', 64 | 'type' => 'text', 65 | 'std' => '', 66 | 'desc' => __('Telegram链接,留空则不显示', 'ui_boxmoe_com'), 67 | 'class' => 'small', 68 | ); 69 | $options[] = array( 70 | 'group' => 'end', 71 | 'name' => __('GitHub', 'ui_boxmoe_com'), 72 | 'id' => 'boxmoe_social_github', 73 | 'type' => 'text', 74 | 'std' => '', 75 | 'desc' => __('GitHub链接,留空则不显示', 'ui_boxmoe_com'), 76 | 'class' => 'small', 77 | ); -------------------------------------------------------------------------------- /core/panel/settings/set-theme.php: -------------------------------------------------------------------------------- 1 | __('关于主题', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-info', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'name' => __('开源协议', 'ui_boxmoe_com'), 20 | 'id' => 'banquan', 21 | 'desc' => __(' 22 |

    1.主题依托于开源协议 GPL V3.0,如果不接受本协议,请立即删除

    23 |

    2.请遵循开源协议,保留主题底部版权信息,如果不接受本协议,请立即删除;

    24 | ', 'ui_boxmoe_com'), 25 | 'type' => 'info'); 26 | $options[] = array( 27 | 'name' => __('使用协议/注意事项', 'ui_boxmoe_com'), 28 | 'id' => 'shiyong', 29 | 'desc' => __(' 30 |

    1.主题仅供博客爱好者合法建站交流!禁止使用于违法用途!如如主题使用者不能遵守此规定,请立即删除;

    31 |

    2.严禁利用本主题严重侵犯他人隐私权,如主题使用者不能遵守此规定,请立即删除;

    32 |

    3.使用主题请遵守网站服务器当地相关法律和站长当地相关法律,如不能遵守请立即删除;

    33 |

    4.主题不支持任何作为非法违规用途站点!如不能遵守请立即删除;

    34 |

    5.主题开源无任何加密文件,对于因用户使用本主题而造成自身或他人隐私泄露,等任何不良后果,均由用户自行承担,主题作者不负任何责任;

    35 |

    6.本主题共享下载,如果用户自行下载使用,即表明用户自愿并接受本协议所有条款。 如果用户不接受本协议,请立即删除;

    36 | ', 'ui_boxmoe_com'), 37 | 'type' => 'info'); 38 | $options[] = array( 39 | 'name' => __('主题信息', 'ui_boxmoe_com'), 40 | 'id' => 'banquan', 41 | 'desc' => __(' 42 |

    当前版本:'.$THEME_VERSION.'

    43 |

    最新版本:

    44 |

    查看主题:更新日志

    45 |

    主题QQ群:24847519

    46 |

    TG群组:https://t.me/hezimeng

    47 | ', 'ui_boxmoe_com'), 48 | 'type' => 'info'); -------------------------------------------------------------------------------- /core/panel/settings/set-user.php: -------------------------------------------------------------------------------- 1 | __('用户设置', 'ui_boxmoe_com'), 15 | 'icon' => 'dashicons-admin-users', 16 | 'type' => 'heading'); 17 | 18 | $options[] = array( 19 | 'name' => __('开启导航会员注册链接', 'ui_boxmoe_com'), 20 | 'id' => 'boxmoe_sign_in_link_switch', 21 | 'type' => "checkbox", 22 | 'std' => false, 23 | 'desc' => __('若开启则导航栏将显示会员注册链接', 'ui_boxmoe_com'), 24 | ); 25 | $options[] = array( 26 | 'name' => __('用户登录注册页面背景图', 'ui_boxmoe_com'), 27 | 'id' => 'boxmoe_user_login_bg', 28 | 'type' => 'text', 29 | 'std' => '', 30 | 'desc' => __('(用户登录注册页面背景图,填写图片URL,支持API)', 'ui_boxmoe_com'), 31 | ); 32 | $options[] = array( 33 | 'group' => 'start', 34 | 'group_title' => '用户中心链接设置', 35 | 'name' => __('用户中心选择', 'ui_boxmoe_com'), 36 | 'id' => 'boxmoe_user_center_link_page', 37 | 'type' => "select", 38 | 'std' => 'user_center', 39 | 'options' => $options_pages 40 | ); 41 | $options[] = array( 42 | 'name' => __('注册页面选择', 'ui_boxmoe_com'), 43 | 'id' => 'boxmoe_sign_up_link_page', 44 | 'type' => "select", 45 | 'std' => 'user_center', 46 | 'options' => $options_pages 47 | 48 | ); 49 | $options[] = array( 50 | 'name' => __('登录页面选择', 'ui_boxmoe_com'), 51 | 'id' => 'boxmoe_sign_in_link_page', 52 | 'type' => "select", 53 | 'std' => 'user_center', 54 | 'options' => $options_pages 55 | ); 56 | $options[] = array( 57 | 'name' => __('重置密码页面选择', 'ui_boxmoe_com'), 58 | 'id' => 'boxmoe_reset_password_link_page', 59 | 'type' => "select", 60 | 'std' => 'user_center', 61 | 'options' => $options_pages 62 | ); 63 | $options[] = array( 64 | 'group' => 'end', 65 | 'name' => __('前端充值卡购买链接', 'ui_boxmoe_com'), 66 | 'id' => 'boxmoe_czcard_src', 67 | 'std' => '', 68 | 'desc' => __('(前端用户充值中心,充值卡购买链接)', 'ui_boxmoe_com'), 69 | 'type' => 'text'); 70 | -------------------------------------------------------------------------------- /core/widgets/widget-ads.php: -------------------------------------------------------------------------------- 1 | 'widget_ads' ) ); 13 | } 14 | function widget( $args, $instance ) { 15 | extract( $args ); 16 | $title = apply_filters('widget_name', $instance['title']); 17 | $code = $instance['code']; 18 | echo $before_widget; 19 | echo '

    '.$title.'

    '; 20 | echo '
    '.$code.'
    '; 21 | echo $after_widget; 22 | } 23 | function form($instance) { 24 | $defaults = array( 25 | 'title' => __('广告', 'boxmoe-com').' '.date('m-d'), 26 | 'code' => '
    27 | 28 |
    29 | 标题
    30 |
    31 |
    ' 32 | ); 33 | $instance = wp_parse_args( (array) $instance, $defaults ); 34 | ?> 35 |

    36 | 40 |

    41 |

    42 | 46 |

    47 | __('Boxmoe_侧栏文章归档', 'text_domain'), 15 | 'classname' => __('widget_archive', 'text_domain' )) 16 | ); 17 | } 18 | 19 | public function widget($args, $instance) { 20 | $title = apply_filters('widget_title', $instance['title']); 21 | $show_count = isset($instance['show_count']) ? $instance['show_count'] : false; 22 | 23 | echo $args['before_widget']; 24 | if ($title) { 25 | echo $args['before_title'] . $title . $args['after_title']; 26 | } 27 | 28 | // 获取归档 29 | $archives = wp_get_archives(array( 30 | 'type' => 'monthly', 31 | 'show_post_count' => $show_count, 32 | 'echo' => 0 33 | )); 34 | 35 | if ($archives) { 36 | $doc = new DOMDocument(); 37 | libxml_use_internal_errors(true); 38 | $doc->loadHTML('' . $archives); 39 | libxml_clear_errors(); 40 | 41 | $xpath = new DOMXPath($doc); 42 | $listItems = $xpath->query('//li'); 43 | 44 | echo '
      '; 45 | foreach ($listItems as $item) { 46 | $link = $xpath->query('.//a', $item); 47 | $count = $xpath->query('.//text()', $item); 48 | 49 | if ($link->length > 0) { 50 | $href = $link->item(0)->getAttribute('href'); 51 | $title = $link->item(0)->textContent; 52 | $countText = ''; 53 | if ($count->length > 1) { 54 | $countText = $count->item(1)->nodeValue; 55 | } 56 | echo '
    • ' . esc_html($title) . '' . esc_html($countText) . '
    • '; 57 | } 58 | } 59 | echo '
    '; 60 | } else { 61 | echo '

    ' . __('没有找到归档。', 'text_domain') . '

    '; 62 | } 63 | echo $args['after_widget']; 64 | } 65 | 66 | public function form($instance) { 67 | $title = !empty($instance['title']) ? $instance['title'] : __('归档', 'text_domain'); 68 | $show_count = !empty($instance['show_count']) ? (bool) $instance['show_count'] : false; 69 | ?> 70 |

    71 | 72 | 73 |

    74 |

    75 | id="get_field_id('show_count'); ?>" name="get_field_name('show_count'); ?>" /> 76 | 77 |

    78 | __('Boxmoe_侧栏分类小工具', 'text_domain'), 15 | 'classname' => __('widget_categories', 'text_domain' )) 16 | ); 17 | } 18 | 19 | public function widget($args, $instance) { 20 | $title = apply_filters('widget_title', $instance['title']); 21 | $show_count = isset($instance['show_count']) ? $instance['show_count'] : false; 22 | echo $args['before_widget']; 23 | if ($title) { 24 | echo $args['before_title'] . $title . $args['after_title']; 25 | } 26 | $categories = get_categories(array('hide_empty' => false)); 27 | echo '
      '; 28 | foreach ($categories as $category) { 29 | echo '
    • '; 30 | echo '' . esc_html($category->name) . ''; 31 | if ($show_count) { 32 | echo '(' . $category->count . ')'; 33 | } 34 | echo '
    • '; 35 | } 36 | echo '
    '; 37 | echo $args['after_widget']; 38 | } 39 | 40 | public function form($instance) { 41 | $title = !empty($instance['title']) ? $instance['title'] : __('分类', 'text_domain'); 42 | $show_count = !empty($instance['show_count']) ? (bool) $instance['show_count'] : false; 43 | ?> 44 |

    45 | 46 | 47 |

    48 |

    49 | id="get_field_id('show_count'); ?>" name="get_field_name('show_count'); ?>" /> 50 | 51 |

    52 | __('Boxmoe_最新评论侧栏', 'text_domain'), 15 | 'classname' => __('widget_comments', 'text_domain' )) 16 | ); 17 | } 18 | function widget( $args, $instance ) { 19 | extract( $args ); 20 | $title = apply_filters('widget_name', $instance['title']); 21 | $limit = isset($instance['limit']) ? $instance['limit'] : 8; 22 | $outer = isset($instance['outer']) ? $instance['outer'] : -1; 23 | echo $before_widget; 24 | echo $before_title.$title.$after_title; 25 | echo '
      '; 26 | $output = ''; 27 | $comment_avatar = ''; 28 | global $wpdb; 29 | $sql = "SELECT DISTINCT ID, post_title, post_password, user_id, comment_ID, comment_post_ID, comment_author, comment_date, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,60) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE user_id!='".$outer."' AND comment_approved = '1' AND (comment_type = '' OR comment_type = 'comment') AND post_password = '' ORDER BY comment_date DESC LIMIT $limit"; 30 | $comments = $wpdb->get_results($sql); 31 | foreach ( $comments as $comment ) { 32 | $content = strip_tags($comment->com_excerpt); 33 | $content = mb_strimwidth(strip_tags($content), 0, '40', '...', 'UTF-8'); 34 | $content = convert_smilies($content); 35 | $lazy_img = boxmoe_lazy_load_images(); 36 | $comment_avatar = 'avatar'; 37 | $output .= '
    • 38 |
      39 | 40 | '.$comment_avatar.' 41 |
      '.strip_tags($comment->comment_author).'
      42 | '.get_comment_date('Y-m-d', $comment->comment_ID).'
      43 |
      44 | 45 |
      '.$content.'
      46 |
      47 |
    • '; 48 | } 49 | echo $output; 50 | echo '
    '; 51 | echo $after_widget; 52 | } 53 | 54 | function form($instance) { 55 | $defaults = array( 'title' => __('最新评论', 'boxmoe-com'), 'limit' => 8, 'outer' => 1 ); 56 | $instance = wp_parse_args( (array) $instance, $defaults ); 57 | ?> 58 |

    59 | 63 |

    64 |

    65 | 69 |

    70 |

    71 | 75 |

    76 | 77 | __('Boxmoe_文章侧栏', 'text_domain'), 13 | 'classname' => __('widget-postlist', 'text_domain' )) ); 14 | } 15 | function widget( $args, $instance ) { 16 | extract( $args ); 17 | $title = apply_filters('widget_name', $instance['title']); 18 | $limit = isset($instance['limit']) ? $instance['limit'] : 6; 19 | $cat = isset($instance['cat']) ? $instance['cat'] : 0; 20 | $orderby = isset($instance['orderby']) ? $instance['orderby'] : 'date'; 21 | $showstyle = isset($instance['showstyle']) ? $instance['showstyle'] : 'widget-content'; 22 | // $img = $instance['img']; 23 | $style = ' class="'.$showstyle.'"'; 24 | echo $before_widget; 25 | echo $before_title.$title.$after_title; 26 | echo ''; 27 | $args = array( 28 | 'order' => 'DESC', 29 | 'cat' => $cat, 30 | 'orderby' => $orderby, 31 | 'showposts' => $limit, 32 | 'ignore_sticky_posts' => 1 33 | ); 34 | query_posts($args); 35 | while (have_posts()) : the_post(); 36 | echo '
    37 |
    38 | 39 | 40 | 41 |
    42 |

    43 | '. get_the_title() . get_the_subtitle() .'

    44 | '.get_the_time('Y-m-d').' 45 |
    '; 46 | echo '
    '; 47 | endwhile; wp_reset_query(); 48 | echo ''; 49 | echo $after_widget; 50 | } 51 | 52 | function form( $instance ) { 53 | $defaults = array( 54 | 'title' => __('最新文章', 'boxmoe-com'), 55 | 'limit' => 6, 56 | 'cat' => '', 57 | 'orderby' => 'date', 58 | ); 59 | $instance = wp_parse_args( (array) $instance, $defaults ); 60 | ?> 61 |

    62 | 66 |

    67 |

    68 | 76 |

    77 |

    78 | 83 |

    84 |

    85 | 89 |

    90 | 91 | __('Boxmoe_侧栏搜索框', 'text_domain'), 15 | 'classname' => __('widget-search', 'text_domain')) 16 | ); 17 | } 18 | 19 | public function widget($args, $instance) { 20 | $title = apply_filters('widget_title', $instance['title']); 21 | 22 | echo $args['before_widget']; 23 | if ($title) { 24 | echo $args['before_title'] . $title . $args['after_title']; 25 | } 26 | ?> 27 |
    28 |
    29 |
    30 | 32 | 35 |
    36 |
    37 |
    38 | 45 |

    46 | 47 | 50 |

    51 | __('Boxmoe_标签侧栏', 'text_domain'), 13 | 'classname' => __('widget-tag', 'text_domain' )) ); 14 | } 15 | 16 | function widget( $args, $instance ) { 17 | extract( $args ); 18 | 19 | $title = apply_filters('widget_name', $instance['title']); 20 | $count = $instance['count']; 21 | echo $before_widget; 22 | echo $before_title.$title.$after_title; 23 | echo '
    '; 24 | $tags_list = get_tags('orderby=count&order=DESC&number='.$count); 25 | if ($tags_list) { 26 | $i = 0; 27 | foreach($tags_list as $tag) { 28 | $i++; 29 | echo ''. $tag->name .''; 30 | } 31 | }else{ 32 | echo __('暂无标签!', 'boxmoe-com'); 33 | } 34 | echo '
    '; 35 | echo $after_widget; 36 | } 37 | 38 | function form($instance) { 39 | $defaults = array( 'title' => __('标签云', 'boxmoe-com'), 'count' => 24 ); 40 | $instance = wp_parse_args( (array) $instance, $defaults ); 41 | ?> 42 |

    43 | 47 |

    48 |

    49 | 53 |

    54 | 8 | 9 | 10 |
    11 |
    12 |
    13 |
    14 | 15 |
    16 |
    17 |
    18 |
    19 |
    20 |
      21 | 22 |
    • 23 | 26 |
    • 27 | 28 | 29 |
    • 30 | 31 | 返回顶部 32 |
    • 33 | 34 |
    35 |
    36 |
    37 | 43 | 44 | 45 | 46 | 56 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /options.php: -------------------------------------------------------------------------------- 1 | cat_ID] = $category->cat_name; 21 | } 22 | //获取标签 23 | $options_tags = array(); 24 | $options_tags_obj = get_tags(); 25 | foreach ( $options_tags_obj as $tag ) { 26 | $options_tags[$tag->term_id] = $tag->name; 27 | } 28 | //获取页面 29 | $options_pages = array(); 30 | $options_pages_obj = get_pages('sort_column=post_parent,menu_order'); 31 | $options_pages[''] = '请选择页面'; 32 | foreach ($options_pages_obj as $page) { 33 | $options_pages[$page->ID] = $page->post_title; 34 | } 35 | //定义图片路径 36 | $image_path = get_template_directory_uri() . '/assets/images/'; 37 | $web_home = 'https://www.boxmoe.com'; 38 | $THEME_VERSION = THEME_VERSION; 39 | $options = array(); 40 | //基础设置----------------------------------------------------------- 41 | require_once get_template_directory() . '/core/panel/settings/set-basis.php'; 42 | //Banner设置----------------------------------------------------------- 43 | require_once get_template_directory() . '/core/panel/settings/set-banner.php'; 44 | //SEO优化----------------------------------------------------------- 45 | require_once get_template_directory() . '/core/panel/settings/set-seo.php'; 46 | //文章设置----------------------------------------------------------- 47 | require_once get_template_directory() . '/core/panel/settings/set-artice.php'; 48 | //评论设置----------------------------------------------------------- 49 | require_once get_template_directory() . '/core/panel/settings/set-comment.php'; 50 | //用户设置----------------------------------------------------------- 51 | require_once get_template_directory() . '/core/panel/settings/set-user.php'; 52 | //社交图标----------------------------------------------------------- 53 | require_once get_template_directory() . '/core/panel/settings/set-social.php'; 54 | //静态加速----------------------------------------------------------- 55 | require_once get_template_directory() . '/core/panel/settings/set-assets.php'; 56 | //系统优化----------------------------------------------------------- 57 | require_once get_template_directory() . '/core/panel/settings/set-optimize.php'; 58 | //消息通知----------------------------------------------------------- 59 | require_once get_template_directory() . '/core/panel/settings/set-msg.php'; 60 | //主题信息----------------------------------------------------------- 61 | require_once get_template_directory() . '/core/panel/settings/set-theme.php'; 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | //----------------------------------------------------------- 70 | return $options; 71 | } 72 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /page/p-go.php: -------------------------------------------------------------------------------- 1 | 384 || strpos($_SERVER['REQUEST_URI'], "eval(") || strpos($_SERVER['REQUEST_URI'], "base64")) { 15 | @header("HTTP/1.1 414 Request-URI Too Long"); 16 | @header("Status: 414 Request-URI Too Long"); 17 | @header("Connection: Close"); 18 | @exit; 19 | } 20 | $go_url=htmlspecialchars(preg_replace('/^url=(.*)$/i','$1',$_SERVER["QUERY_STRING"])); 21 | //自定义URL 22 | foreach($my_urls as $key => $url_info) 23 | { 24 | if($go_url==$url_info[0]) { 25 | echo $go_url = $url_info[1]; 26 | } 27 | } 28 | if(!empty($go_url)) { 29 | if ($go_url == base64_encode(base64_decode($go_url))) { 30 | $go_url = base64_decode($go_url); 31 | } 32 | preg_match('/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser):\/\//i',$go_url,$matches); 33 | if($matches){ 34 | $url=$go_url; 35 | $title= '页面加载中,请稍候...'; 36 | } else { 37 | preg_match('/\./i',$go_url,$matche); 38 | if($matche){ 39 | $url='https://'.$go_url; 40 | $title= '页面加载中,请稍候...'; 41 | } else { 42 | $url = 'https://'.$_SERVER['HTTP_HOST']; 43 | $title='参数错误,中止跳转!正在返回首页...'; 44 | echo ""; 45 | } 46 | } 47 | } else { 48 | $title ='参数缺失,中止跳转!正在返回首页...'; 49 | $url = 'https://'.$_SERVER['HTTP_HOST']; 50 | echo ""; 51 | } 52 | 53 | ?> 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | <?php echo $title;?> 62 | 63 | 66 | 67 | 68 | 69 |
    70 |
    71 |
    72 |
    73 |
    74 |
    75 |
    76 | 页面加载中,请稍候... 77 |
    78 |
    79 | 80 | 81 | -------------------------------------------------------------------------------- /page/p-links.php: -------------------------------------------------------------------------------- 1 | 9 |
    10 |
    11 | 12 |
    13 |

    14 |
    15 |
    16 | 17 |
    18 |
    19 | $cat->term_id, 32 | 'orderby' => 'rating', 33 | 'order' => 'DESC' 34 | )); 35 | 36 | if ($links) { 37 | echo '

    '; 38 | echo '' . esc_html($cat->name) . ' (' . count($links) . ')'; 39 | echo '

    ' . esc_html($cat->description) . '

    '; 40 | echo '

    '; 41 | echo '
      '; 42 | 43 | foreach ($links as $link) { 44 | // 记录已分类链接的ID 45 | $categorized_link_ids[] = $link->link_id; 46 | ?> 47 |
    • 48 | 49 |
      50 | <?php echo esc_attr($link->link_name); ?> 51 |
      52 |
      53 |

      link_name); ?>

      54 |

      link_description); ?>

      55 |
      56 |
      57 |
      58 | <?php echo esc_attr($link->link_name); ?> 59 |
      60 |
      61 |
      62 |
    • 63 | '; 66 | } 67 | } 68 | } 69 | 70 | // 获取真正未分类的链接(不在任何分类中的链接) 71 | $all_links = get_bookmarks(array( 72 | 'orderby' => 'rating', 73 | 'order' => 'DESC' 74 | )); 75 | 76 | $truly_uncategorized = array(); 77 | foreach ($all_links as $link) { 78 | // 如果链接ID不在已分类链接ID数组中,则添加到真正未分类数组 79 | if (!in_array($link->link_id, $categorized_link_ids)) { 80 | $truly_uncategorized[] = $link; 81 | } 82 | } 83 | 84 | // 显示真正未分类的链接 85 | if ($truly_uncategorized) { 86 | echo '

      '; 87 | echo '未分类 (' . count($truly_uncategorized) . ')'; 88 | echo '

      未归类的友情链接

      '; 89 | echo '

      '; 90 | echo '
        '; 91 | 92 | foreach ($truly_uncategorized as $link) { 93 | ?> 94 |
      • 95 | 96 |
        97 | <?php echo esc_attr($link->link_name); ?> 98 |
        99 |
        100 |

        link_name); ?>

        101 |

        link_description); ?>

        102 |
        103 |
        104 |
        105 | <?php echo esc_attr($link->link_name); ?> 106 |
        107 |
        108 |
        109 |
      • 110 | '; 113 | } 114 | 115 | // 如果没有任何链接,显示提示信息 116 | if (empty($all_links)) { 117 | echo '

        暂无链接

        '; 118 | } 119 | ?> 120 |
    121 |
    122 | 123 | 124 | 125 | 126 |
    127 |
    128 | 131 | 132 | 133 | 13 | -------------------------------------------------------------------------------- /page/p-page-nosidebar.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /page/p-page.php: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /page/p-reset_password.php: -------------------------------------------------------------------------------- 1 | 15 | > 16 | 17 | 18 | 19 | <?php echo boxmoe_theme_title(); ?> 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
    28 |
    29 |
    30 |
    31 |
    32 |
    33 | 34 | 35 |

    重置密码

    36 |

    请输入您的邮箱,我们将发送重置密码的链接。

    37 |
    38 |
    39 | 40 |
    41 | 45 | 46 |
    请输入有效的邮箱地址。
    47 |
    48 |
    49 |
    50 | 51 |
    52 |
    53 |
    54 | 55 | 56 | 57 | 58 | 返回登录 59 | 60 |
    61 |
    62 |
    63 |
    64 |
    65 |
    66 |
    67 | 68 |
    69 |
    70 | 79 |
      80 |
    • 81 | 85 |
    • 86 |
    • 87 | 91 |
    • 92 |
    • 93 | 97 |
    • 98 |
    99 |
    100 |
    101 |
    102 | 108 | 158 | 159 | 160 | -------------------------------------------------------------------------------- /page/template/blog-list.php: -------------------------------------------------------------------------------- 1 | 9 |
    10 | 11 |
    12 |
    13 |
    14 | href="" title=""> 15 | <?php the_title(); ?> 16 |
    17 | 18 |
    19 |
    20 |
    21 |
    22 | 26 | 27 | name); ?> 28 | 29 | 30 |
    31 |
    32 |
    33 |

    34 |

    35 |

    36 |
    37 |
    38 | avatar 39 |
    40 |
    41 |
    42 | 43 | 44 | 45 | 46 |
    47 | 48 | 49 | 50 |
    51 |
    52 |
    53 |
    54 | 55 |
    56 | 57 |
    58 |
    -------------------------------------------------------------------------------- /page/template/blog-page-nosidebar-noborder.php: -------------------------------------------------------------------------------- 1 | 9 |
    10 |
    11 | 12 |
    13 |
    14 | 18 | 19 | name); ?> 20 | 21 | 22 |
    23 |

    24 |
    25 |
    26 |
    27 |
    28 | avatar 29 |
    30 |
    31 | 32 | 33 | 34 | 35 | 编辑['.__( '仅作者可见', 'boxmoe'). ']'); ?> 36 |
    37 |
    38 |
    39 |
    40 |
    41 |
    42 | 43 | 评论 44 |
    45 |
    46 |
    47 |
    48 |
    49 |
    50 | 51 |
    52 |
    53 |
    文章导读
    54 |
    55 |
    56 |
    57 | 58 |
    59 | 60 |
    61 | term_id); 65 | $tag_name = esc_html($tag->name); 66 | echo ''; 67 | echo ''; 68 | echo $tag_name; 69 | echo ' '; 70 | } 71 | } 72 | ?> 73 |
    74 | 75 |
    76 | 77 | 81 | 82 | 83 | 87 | 88 |
    89 | 90 |
    91 |
    92 |
    93 | 94 |
    感谢您的支持
    95 | 96 |
    97 |
    98 |
    99 | 100 | 微信赞赏 101 |

    微信扫一扫

    102 | 103 |
    104 |
    105 | 106 | 支付宝赞赏 107 |

    支付宝扫一扫

    108 | 109 |
    110 |
    111 |
    112 |
    113 | 114 | 115 |
    116 | 117 |
    118 | 119 | 120 | 121 | 122 |
    123 |
    124 | -------------------------------------------------------------------------------- /page/template/blog-page-nosidebar.php: -------------------------------------------------------------------------------- 1 | 9 |
    10 |
    11 | 12 |
    13 |
    14 | 18 | 19 | name); ?> 20 | 21 | 22 |
    23 |

    24 |
    25 |
    26 |
    27 |
    28 | avatar 29 |
    30 |
    31 | 32 | 33 | 34 | 35 | 编辑['.__( '仅作者可见', 'boxmoe'). ']'); ?> 36 |
    37 |
    38 |
    39 |
    40 |
    41 |
    42 | 43 | 评论 44 |
    45 |
    46 |
    47 |
    48 |
    49 |
    50 | 51 |
    52 |
    53 |
    文章导读
    54 |
    55 |
    56 |
    57 | 58 |
    59 | 60 |
    61 | term_id); 65 | $tag_name = esc_html($tag->name); 66 | echo ''; 67 | echo ''; 68 | echo $tag_name; 69 | echo ' '; 70 | } 71 | } 72 | ?> 73 |
    74 | 75 |
    76 | 77 | 81 | 82 | 83 | 87 | 88 |
    89 | 90 |
    91 |
    92 |
    93 | 94 |
    感谢您的支持
    95 | 96 |
    97 |
    98 |
    99 | 100 | 微信赞赏 101 |

    微信扫一扫

    102 | 103 |
    104 |
    105 | 106 | 支付宝赞赏 107 |

    支付宝扫一扫

    108 | 109 |
    110 |
    111 |
    112 |
    113 | 114 | 115 |
    116 | 117 |
    118 | 119 | 120 | 121 | 122 |
    123 |
    124 | -------------------------------------------------------------------------------- /page/template/blog-page.php: -------------------------------------------------------------------------------- 1 | 9 |
    10 |
    11 | 12 |
    13 |
    14 | 18 | 19 | name); ?> 20 | 21 | 22 |
    23 |

    24 |
    25 |
    26 |
    27 |
    28 | avatar 29 |
    30 |
    31 | 32 | 33 | 34 | 35 | 编辑['.__( '仅作者可见', 'boxmoe'). ']'); ?> 36 |
    37 |
    38 |
    39 |
    40 |
    41 |
    42 | 43 | 评论 44 |
    45 |
    46 |
    47 |
    48 |
    49 |
    50 | 51 |
    52 |
    53 |
    文章导读
    54 |
    55 |
    56 |
    57 | 58 |
    59 | 60 | 61 |
    62 | 63 | 64 | 65 | 66 |
    67 |
    68 | -------------------------------------------------------------------------------- /page/template/user-collect.php: -------------------------------------------------------------------------------- 1 | 18 |
    19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | post_status == 'publish') : ?> 31 | 32 | 35 | 38 | 39 | 41 | 42 | 43 | 46 | 47 | 48 | 49 |
    收藏文章操作
    33 | 34 | 36 | 取消收藏 37 |
    44 | 没有收藏 45 |
    50 |
    51 | 1) : ?> 52 |
    53 |
      54 | 58 |
    • 59 | >Previous 60 |
    • 61 | 62 |
    • 63 | 64 |
    • 65 | 66 |
    • 67 | = $total_pages) ? 'tabindex="-1" aria-disabled="true"' : ''; ?>>Next 68 |
    • 69 |
    70 |
    71 | 72 | -------------------------------------------------------------------------------- /page/template/user-comment.php: -------------------------------------------------------------------------------- 1 | 10 |

    你的历史评论内容将在这里呈现

    11 | $current_user->ID, 19 | 'status' => 'approve', 20 | 'number' => $comments_per_page, 21 | 'offset' => $offset, 22 | )); 23 | 24 | $total_comments = get_comments(array( 25 | 'user_id' => $current_user->ID, 26 | 'status' => 'approve', 27 | 'count' => true, 28 | )); 29 | 30 | // 统计被回复的总数量 31 | $total_replies = 0; 32 | foreach ($comments as $comment) { 33 | $total_replies += get_comments(array( 34 | 'parent' => $comment->comment_ID, 35 | 'count' => true, 36 | )); 37 | } 38 | $total_pages = ceil($total_comments / $comments_per_page); 39 | 40 | $output = ''; 41 | $output .= '
    '; 42 | $output .= '
    '; 43 | $output .= '
    '; 44 | $output .= '
    '; 45 | $output .= '
    '; 46 | $output .= '
    发出评论数
    '; 47 | $output .= '

    ' . $total_comments . '条

    '; 48 | $output .= '
    '; 49 | $output .= '
    '; 50 | $output .= '
    '; 51 | $output .= '
    '; 52 | $output .= '
    '; 53 | $output .= '
    '; 54 | $output .= '
    '; 55 | $output .= '
    '; 56 | $output .= '
    被回复评论数
    '; 57 | $output .= '

    ' . $total_replies . '条

    '; 58 | $output .= '
    '; 59 | $output .= '
    '; 60 | $output .= '
    '; 61 | $output .= '
    '; 62 | $output .= '
    '; 63 | $output .= '
    '; 64 | $output .= ''; 65 | $output .= ''; 66 | $output .= ''; 67 | $output .= ' '; 68 | $output .= ' '; 69 | $output .= ' '; 70 | $output .= ''; 71 | $output .= ''; 72 | $output .= ''; 73 | if (empty($comments)) { 74 | $output .= ' '; 75 | $output .= ' '; 76 | $output .= ''; 77 | }else{ 78 | foreach ($comments as $comment) { 79 | $replies_count = get_comments(array( 80 | 'parent' => $comment->comment_ID, 81 | 'count' => true, 82 | )); 83 | $comment_content = wp_trim_words($comment->comment_content, 10, '...'); 84 | $comment_post_url = get_permalink($comment->comment_post_ID); 85 | $output .= ''; 86 | $output .= ''; 87 | $output .= ''; 88 | $output .= ''; 89 | $output .= ''; 90 | } 91 | } 92 | $output .= ''; 93 | $output .= '
    评论内容被回复数查看原文
    你暂时还没有发出评论!
    ' . esc_html($comment_content) . '' . intval($replies_count) . '查看原文
    '; 94 | $output .= '
    '; 95 | $output .= '
    '; 96 | $output .= '
    '; 97 | $output .= '
      '; 98 | 99 | $current_page = max(1, get_query_var('paged', 1)); 100 | 101 | // 计算显示的页码范围 102 | $start = max(1, min($current_page - 2, $total_pages - 4)); 103 | $end = min($total_pages, max(5, $current_page + 2)); 104 | 105 | // 显示第一页和省略号 106 | if ($start > 1) { 107 | $output .= '
    • 1
    • '; 108 | if ($start > 2) { 109 | $output .= '
    • ...
    • '; 110 | } 111 | } 112 | 113 | // 显示中间的页码 114 | for ($i = $start; $i <= $end; $i++) { 115 | $class = ($i === $current_page) ? ' active' : ''; 116 | $output .= '
    • ' . $i . '
    • '; 117 | } 118 | 119 | // 显示最后一页和省略号 120 | if ($end < $total_pages) { 121 | if ($end < $total_pages - 1) { 122 | $output .= '
    • ...
    • '; 123 | } 124 | $output .= '
    • ' . $total_pages . '
    • '; 125 | } 126 | 127 | $output .= '
    '; 128 | $output .= '
    '; 129 | $output .= '
    '; 130 | echo $output; 131 | 132 | ?> -------------------------------------------------------------------------------- /page/template/user-consumption.php: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /page/template/user-nav.php: -------------------------------------------------------------------------------- 1 | 10 |
    11 |
    12 | avatar 13 |
    14 |
    display_name; ?>
    15 | user_email; ?> 16 |
    17 |
    18 | 19 | 20 |
    21 | 25 |
    26 | 33 |
    34 |
      35 |
    • 36 | 37 | 38 | 用户中心 39 | 40 |
    • 41 |
    • 42 | 43 | 44 | 订单管理 45 | 46 |
    • 47 |
    • 48 | 49 | 50 | 会员订阅 51 | 52 |
    • 53 |
    • 54 | 55 | 56 | 资产管理 57 | 58 |
    • 59 |
    • 60 | 61 | 62 | 充值记录 63 | 64 |
    • 65 |
    • 66 | 67 | 68 | 我的收藏 69 | 70 |
    • 71 |
    • 72 | 73 | 74 | 评论内容 75 | 76 |
    • 77 |
    • 78 | 79 | 80 | 修改密码 81 | 82 |
    • 83 |
    • 84 | 85 | 86 | 退出登录 87 | 88 |
    • 89 |
    90 |
    91 |
    -------------------------------------------------------------------------------- /page/template/user-order.php: -------------------------------------------------------------------------------- 1 | get_var("SELECT COUNT(ice_id) FROM $wpdb->icealipay WHERE ice_success>0 and ice_user_id=".$current_user->ID); 10 | $ice_perpage = 20; 11 | $pages = ceil($total_trade / $ice_perpage); 12 | $page=isset($_GET['pp']) ?intval($_GET['pp']) :1; 13 | $offset = $ice_perpage*($page-1); 14 | $list = $wpdb->get_results("SELECT * FROM $wpdb->icealipay where ice_success=1 and ice_user_id=$current_user->ID order by ice_time DESC limit $offset,$ice_perpage"); 15 | 16 | ?> 17 |
    18 |

    订单列表

    19 |
    20 | ice_post, 'start_down', true ); 24 | $start_down2 = get_post_meta( $value->ice_post, 'start_down2', true ); ?> 25 |
    26 |
    27 |
    28 | 29 |
    30 |
    ice_post)->post_title; ?>
    31 | 32 | 订单号:ice_num;?> 33 | 下单时间:ice_time;?> 34 | 价格:ice_price;?> 35 | 36 |
    37 |
    38 |
    39 | 40 | 58 |
    59 | 60 | -------------------------------------------------------------------------------- /page/template/user-password.php: -------------------------------------------------------------------------------- 1 | 10 |

    请自行保管好密码,密码遗忘只能通过邮箱找回!请保持邮箱有效可接收邮件。

    11 |
    12 |
    13 | 14 | 15 |
    请输入旧密码
    16 |
    17 | 18 |
    19 | 20 | 21 |
    请输入新密码
    22 |
    23 | 24 |
    25 | 26 | 27 |
    请输入确认密码
    28 |
    29 |
    30 | 31 |
    32 |
    33 | -------------------------------------------------------------------------------- /page/template/user-recharge.php: -------------------------------------------------------------------------------- 1 | get_var("SELECT COUNT(ice_id) FROM $wpdb->icemoney where ice_user_id=".$current_user->ID." and ice_success=1"); 10 | $ice_perpage = 20; 11 | $pages = ceil($total_trade / $ice_perpage); 12 | $page=isset($_GET['pp']) ?intval($_GET['pp']) :1; 13 | $offset = $ice_perpage*($page-1); 14 | $list = $wpdb->get_results("SELECT * FROM $wpdb->icemoney where ice_user_id=".$current_user->ID." and ice_success=1 order by ice_time DESC limit $offset,$ice_perpage"); 15 | 16 | ?> 17 |
    18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | \n"; 31 | echo "\n"; 32 | if(intval($value->ice_note)==0){ 33 | echo "\n"; 34 | }elseif(intval($value->ice_note)==1){ 35 | echo "\n"; 36 | }elseif(intval($value->ice_note)==4){ 37 | echo "\n"; 38 | }elseif(intval($value->ice_note)==6){ 39 | echo "\n"; 40 | }else{ 41 | echo "\n"; 42 | } 43 | echo "\n"; 44 | echo ""; 45 | } 46 | }else{ 47 | echo ''; 48 | } 49 | ?> 50 | 51 |
    金额方式时间
    $value->ice_money".__('在线线充值','erphpdown')."".__('后台充值','erphpdown')."".__('积分兑换','erphpdown')."".__('充值卡','erphpdown')."".__('未知','erphpdown')."$value->ice_time
    '.__('暂无记录','erphpdown').'
    52 |
    53 |
    54 | 55 |
    -------------------------------------------------------------------------------- /screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baomihuahua/lolimeow/9460c4b49ae9ec78d18d9497c3194ca52f4a620a/screenshot.jpg -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 9 |
    10 |
    11 |

    12 | 13 | 搜索:[]关键词found_posts . ' 篇文章';?>

    14 |
    15 |
    16 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
    11 |
    12 |
    13 |
    14 |
    15 |
    16 | 17 |
    18 |
    19 | 29 |
    30 |
    31 |
    32 |
    33 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name:LoliMeow 3 | Theme URI:https://www.boxmoe.com 4 | Description:LoliMeow(洛丽喵)是盒子萌的一款主题. 5 | Author:专收爆米花 6 | Author URI:https://www.boxmoe.com 7 | Version:13.12 8 | */ 9 | --------------------------------------------------------------------------------