commit
This commit is contained in:
29
README.md
29
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