commit
This commit is contained in:
27
README.md
27
README.md
@@ -1,3 +1,28 @@
|
|||||||
# wp-grayscale-memorial
|
# WP Grayscale Memorial
|
||||||
|
|
||||||
一个简单的 WordPress 插件,用于在特定日期范围内让网站变为灰色,适用于纪念日或哀悼日。
|
一个简单的 WordPress 插件,用于在特定日期范围内让网站变为灰色,适用于纪念日或哀悼日。
|
||||||
|
|
||||||
|
## 功能特点
|
||||||
|
|
||||||
|
- 在指定的日期范围内让整个网站变为灰色
|
||||||
|
- 日期范围过期后自动恢复正常显示
|
||||||
|
- 无需禁用插件,只需设置日期范围
|
||||||
|
- 卸载插件时自动清除所有相关数据
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
1. 在 WordPress 后台安装并启用插件
|
||||||
|
2. 进入"设置" > "网站变灰设置"
|
||||||
|
3. 勾选"启用变灰效果"
|
||||||
|
4. 设置开始日期和结束日期
|
||||||
|
5. 点击"保存更改"按钮
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
- 日期范围包含开始日期和结束日期
|
||||||
|
- 如需再次使用,只需重新设置日期范围并启用功能
|
||||||
|
- 插件使用 CSS filter 实现灰度效果,兼容大多数现代浏览器
|
||||||
|
|
||||||
|
## 技术支持
|
||||||
|
|
||||||
|
如有问题或建议,请联系插件作者。
|
2
languages/index.php
Normal file
2
languages/index.php
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# 此目录用于存放插件的语言文件
|
||||||
|
# This directory is used to store plugin language files
|
151
wp-grayscale-memorial.php
Normal file
151
wp-grayscale-memorial.php
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Plugin Name: WP Grayscale Memorial
|
||||||
|
* Plugin URI: https://example.com/wp-grayscale-memorial
|
||||||
|
* Description: 在指定的日期范围内让网站变灰,用于纪念日或哀悼日。过期自动恢复,无需禁用插件。
|
||||||
|
* Version: 1.0.0
|
||||||
|
* Author: Craft AI
|
||||||
|
* Author URI: https://example.com
|
||||||
|
* License: GPL-2.0+
|
||||||
|
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
|
* Text Domain: wp-grayscale-memorial
|
||||||
|
* Domain Path: /languages
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 如果直接访问此文件,则退出
|
||||||
|
if (!defined('ABSPATH')) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WP_Grayscale_Memorial {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插件初始化
|
||||||
|
*/
|
||||||
|
public function __construct() {
|
||||||
|
// 添加管理菜单
|
||||||
|
add_action('admin_menu', array($this, 'add_admin_menu'));
|
||||||
|
|
||||||
|
// 注册设置
|
||||||
|
add_action('admin_init', array($this, 'register_settings'));
|
||||||
|
|
||||||
|
// 前端显示灰度效果
|
||||||
|
add_action('wp_head', array($this, 'apply_grayscale_effect'));
|
||||||
|
|
||||||
|
// 注册卸载钩子
|
||||||
|
register_uninstall_hook(__FILE__, array('WP_Grayscale_Memorial', 'uninstall'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加管理菜单
|
||||||
|
*/
|
||||||
|
public function add_admin_menu() {
|
||||||
|
add_options_page(
|
||||||
|
'网站变灰设置',
|
||||||
|
'网站变灰设置',
|
||||||
|
'manage_options',
|
||||||
|
'wp-grayscale-memorial',
|
||||||
|
array($this, 'admin_page_display')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册插件设置
|
||||||
|
*/
|
||||||
|
public function register_settings() {
|
||||||
|
register_setting('wp_grayscale_memorial_settings', 'wp_grayscale_memorial_start_date');
|
||||||
|
register_setting('wp_grayscale_memorial_settings', 'wp_grayscale_memorial_end_date');
|
||||||
|
register_setting('wp_grayscale_memorial_settings', 'wp_grayscale_memorial_enabled', array(
|
||||||
|
'type' => 'boolean',
|
||||||
|
'default' => false,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示管理页面
|
||||||
|
*/
|
||||||
|
public function admin_page_display() {
|
||||||
|
?>
|
||||||
|
<div class="wrap">
|
||||||
|
<h1>网站变灰设置</h1>
|
||||||
|
<form method="post" action="options.php">
|
||||||
|
<?php settings_fields('wp_grayscale_memorial_settings'); ?>
|
||||||
|
<?php do_settings_sections('wp_grayscale_memorial_settings'); ?>
|
||||||
|
<table class="form-table">
|
||||||
|
<tr valign="top">
|
||||||
|
<th scope="row">启用变灰效果</th>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" name="wp_grayscale_memorial_enabled" value="1" <?php checked(get_option('wp_grayscale_memorial_enabled'), 1); ?> />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr valign="top">
|
||||||
|
<th scope="row">开始日期</th>
|
||||||
|
<td>
|
||||||
|
<input type="date" name="wp_grayscale_memorial_start_date" value="<?php echo esc_attr(get_option('wp_grayscale_memorial_start_date')); ?>" />
|
||||||
|
<p class="description">变灰效果开始的日期(包含当天)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr valign="top">
|
||||||
|
<th scope="row">结束日期</th>
|
||||||
|
<td>
|
||||||
|
<input type="date" name="wp_grayscale_memorial_end_date" value="<?php echo esc_attr(get_option('wp_grayscale_memorial_end_date')); ?>" />
|
||||||
|
<p class="description">变灰效果结束的日期(包含当天)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<?php submit_button(); ?>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用灰度效果
|
||||||
|
*/
|
||||||
|
public function apply_grayscale_effect() {
|
||||||
|
// 检查是否启用
|
||||||
|
$enabled = get_option('wp_grayscale_memorial_enabled');
|
||||||
|
if (!$enabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取日期设置
|
||||||
|
$start_date = get_option('wp_grayscale_memorial_start_date');
|
||||||
|
$end_date = get_option('wp_grayscale_memorial_end_date');
|
||||||
|
|
||||||
|
// 如果没有设置日期,则不执行
|
||||||
|
if (empty($start_date) || empty($end_date)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取当前日期
|
||||||
|
$current_date = current_time('Y-m-d');
|
||||||
|
|
||||||
|
// 检查当前日期是否在设定范围内
|
||||||
|
if ($current_date >= $start_date && $current_date <= $end_date) {
|
||||||
|
// 输出CSS使整个网站变灰
|
||||||
|
echo '<style type="text/css">
|
||||||
|
html {
|
||||||
|
-webkit-filter: grayscale(100%);
|
||||||
|
-moz-filter: grayscale(100%);
|
||||||
|
-ms-filter: grayscale(100%);
|
||||||
|
-o-filter: grayscale(100%);
|
||||||
|
filter: grayscale(100%);
|
||||||
|
filter: gray;
|
||||||
|
}
|
||||||
|
</style>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 卸载插件时清除数据
|
||||||
|
*/
|
||||||
|
public static function uninstall() {
|
||||||
|
delete_option('wp_grayscale_memorial_start_date');
|
||||||
|
delete_option('wp_grayscale_memorial_end_date');
|
||||||
|
delete_option('wp_grayscale_memorial_enabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化插件
|
||||||
|
new WP_Grayscale_Memorial();
|
Reference in New Issue
Block a user