/**
* Plugin Name: WP文章自动刷新插件
* Plugin URI: https://www.imwpweb.com/
* Description: 真正意义上的文章翻新插件,模拟手工重新发布,让老旧文章重新获得搜索引擎青睐,提升网站流量
* Version: 1.0.0
* Author: IMWPWEB
* Author URI: https://www.imwpweb.com/
* Text Domain: wp-article-refresh
* Domain Path: /languages
* License: GPL v2 or later
*/
if (!defined('ABSPATH')) {
exit;
}
// 插件常量定义
define('WP_ARTICLE_REFRESH_VERSION', '1.0.0');
define('WP_ARTICLE_REFRESH_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('WP_ARTICLE_REFRESH_PLUGIN_URL', plugin_dir_url(__FILE__));
/**
* 主插件类
*/
class WP_Article_Refresh {
/**
* 单例实例
*/
private static $instance = null;
/**
* 获取单例实例
*/
public static function get_instance() {
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
/**
* 构造函数
*/
private function __construct() {
// 注册激活/停用钩子
register_activation_hook(__FILE__, array($this, 'activate'));
register_deactivation_hook(__FILE__, array($this, 'deactivate'));
// 初始化插件
add_action('init', array($this, 'init'));
// 添加定时任务钩子
add_action('wp_article_refresh_event', array($this, 'do_refresh'));
}
/**
* 插件激活
*/
public function activate() {
// 设置默认选项
$default_options = array(
'enabled' => 1,
'refresh_interval' => 60, // 分钟
'days_range' => 365, // 1年内
'daily_limit' => 10, // 每天最多翻新10篇
'time_window_start' => '00:00',
'time_window_end' => '23:59',
'categories' => array(), // 空数组表示所有分类
'exclude_categories' => array(),
'refresh_mode' => 'today', // today:今天, random:随机前几天, gradual:逐渐递增
'refreshed_today' => 0,
'last_refresh_date' => date('Y-m-d'),
'total_refreshed' => 0
);
if (!get_option('wp_article_refresh_options')) {
add_option('wp_article_refresh_options', $default_options);
}
// 设置定时任务
if (!wp_next_scheduled('wp_article_refresh_event')) {
wp_schedule_event(time(), 'wp_article_refresh_interval', 'wp_article_refresh_event');
}
// 刷新重写规则
flush_rewrite_rules();
}
/**
* 插件停用
*/
public function deactivate() {
// 清除定时任务
wp_clear_scheduled_hook('wp_article_refresh_event');
// 刷新重写规则
flush_rewrite_rules();
}
/**
* 初始化插件
*/
public function init() {
// 加载文本域
load_plugin_textdomain('wp-article-refresh', false, dirname(plugin_basename(__FILE__)) . '/languages');
// 添加自定义定时间隔
add_filter('cron_schedules', array($this, 'add_cron_interval'));
// 添加管理菜单
add_action('admin_menu', array($this, 'add_admin_menu'));
// 注册AJAX处理
add_action('wp_ajax_wp_article_refresh', array($this, 'handle_ajax'));
// 添加设置链接
add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'add_settings_link'));
// 加载前端资源(仅在插件页面加载)
add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
}
/**
* 添加自定义Cron间隔
*/
public function add_cron_interval($schedules) {
$options = get_option('wp_article_refresh_options');
$interval = isset($options['refresh_interval']) ? $options['refresh_interval'] : 60;
$schedules['wp_article_refresh_interval'] = array(
'interval' => $interval * 60,
'display' => sprintf(__('每 %d 分钟', 'wp-article-refresh'), $interval)
);
return $schedules;
}
/**
* 添加管理菜单
*/
public function add_admin_menu() {
add_menu_page(
__('文章自动刷新', 'wp-article-refresh'),
__('文章刷新', 'wp-article_refresh'),
'manage_options',
'wp-article-refresh',
array($this, 'render_admin_page'),
'dashicons-update',
30
);
}
/**
* 渲染管理页面
*/
public function render_admin_page() {
// 处理表单提交
if (isset($_POST['wp_article_refresh_nonce']) && wp_verify_nonce($_POST['wp_article_refresh_nonce'], 'wp_article_refresh_save')) {
$this->save_options();
echo '
' . __('设置已保存!', 'wp-article-refresh') . '
';
}
// 处理手动刷新
if (isset($_POST['wp_article_refresh_manual']) && wp_verify_nonce($_POST['wp_article_refresh_manual_nonce'], 'wp_article_refresh_manual')) {
$result = $this->do_refresh();
if ($result) {
echo '' . sprintf(__('成功刷新了 %d 篇文章!', 'wp-article-refresh'), $result) . '
';
} else {
echo '' . __('没有找到符合条件的文章或已达今日上限!', 'wp-article-refresh') . '
';
}
}
$options = get_option('wp_article_refresh_options');
$stats = $this->get_statistics();
$categories = get_categories(array('hide_empty' => false));
include WP_ARTICLE_REFRESH_PLUGIN_DIR . 'templates/admin-page.php';
}
/**
* 保存设置选项
*/
private function save_options() {
$options = array(
'enabled' => isset($_POST['enabled']) ? 1 : 0,
'refresh_interval' => absint($_POST['refresh_interval']),
'days_range' => absint($_POST['days_range']),
'daily_limit' => absint($_POST['daily_limit']),
'time_window_start' => sanitize_text_field($_POST['time_window_start']),
'time_window_end' => sanitize_text_field($_POST['time_window_end']),
'categories' => isset($_POST['categories']) ? array_map('absint', $_POST['categories']) : array(),
'exclude_categories' => isset($_POST['exclude_categories']) ? array_map('absint', $_POST['exclude_categories']) : array(),
'refresh_mode' => sanitize_text_field($_POST['refresh_mode']),
'refreshed_today' => isset($_POST['reset_count']) ? 0 : get_option('wp_article_refresh_options', array())
);
// 获取之前的设置
$prev_options = get_option('wp_article_refresh_options', array());
$options['refreshed_today'] = isset($prev_options['refreshed_today']) ? $prev_options['refreshed_today'] : 0;
$options['last_refresh_date'] = isset($prev_options['last_refresh_date']) ? $prev_options['last_refresh_date'] : date('Y-m-d');
$options['total_refreshed'] = isset($prev_options['total_refreshed']) ? $prev_options['total_refreshed'] : 0;
update_option('wp_article_refresh_options', $options);
// 重新设置定时任务
wp_clear_scheduled_hook('wp_article_refresh_event');
if ($options['enabled']) {
wp_schedule_event(time(), 'wp_article_refresh_interval', 'wp_article_refresh_event');
}
}
/**
* 执行文章刷新
*/
public function do_refresh() {
$options = get_option('wp_article_refresh_options');
// 检查插件是否启用
if (!$options['enabled']) {
return 0;
}
// 检查时间窗口
$current_time = current_time('H:i');
if ($current_time < $options['time_window_start'] || $current_time > $options['time_window_end']) {
return 0;
}
// 重置每日计数
$today = date('Y-m-d');
if ($options['last_refresh_date'] !== $today) {
$options['refreshed_today'] = 0;
$options['last_refresh_date'] = $today;
}
// 检查每日限制
if ($options['refreshed_today'] >= $options['daily_limit']) {
return 0;
}
// 获取符合条件的文章
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => $options['daily_limit'] - $options['refreshed_today'],
'date_query' => array(
'before' => date('Y-m-d H:i:s', strtotime('-1 day')),
'after' => date('Y-m-d H:i:s', strtotime('-' . $options['days_range'] . ' days'))
),
'orderby' => 'rand',
'no_found_rows' => true
);
// 分类筛选
if (!empty($options['categories'])) {
$args['category__in'] = $options['categories'];
}
if (!empty($options['exclude_categories'])) {
$args['category__not_in'] = $options['exclude_categories'];
}
$query = new WP_Query($args);
$refreshed = 0;
if ($query->have_posts()) {
foreach ($query->posts as $post) {
// 更新文章日期
$new_date = $this->calculate_new_date($post->post_date, $options['refresh_mode']);
wp_update_post(array(
'ID' => $post->ID,
'post_date' => $new_date,
'post_date_gmt' => get_gmt_from_date($new_date),
'post_modified' => current_time('mysql'),
'post_modified_gmt' => current_time('mysql', 1)
));
// 清理缓存
clean_post_cache($post->ID);
$refreshed++;
}
wp_reset_postdata();
}
// 更新统计
$options['refreshed_today'] += $refreshed;
$options['total_refreshed'] += $refreshed;
update_option('wp_article_refresh_options', $options);
return $refreshed;
}
/**
* 计算新日期
*/
private function calculate_new_date($original_date, $mode) {
$original = strtotime($original_date);
$now = time();
switch ($mode) {
case 'today':
// 设置为今天
return date('Y-m-d H:i:s', time());
case 'random':
// 随机1-7天前
$random_days = wp_rand(1, 7);
$new_time = strtotime("-{$random_days} days");
return date('Y-m-d H:i:s', $new_time);
case 'gradual':
// 逐渐递增(基于原日期递减)
$days_diff = floor(($now - $original) / 86400);
if ($days_diff > 7) {
$new_time = strtotime('-7 days');
} else {
$new_time = $original + 86400; // 往后推一天
}
return date('Y-m-d H:i:s', $new_time);
default:
return date('Y-m-d H:i:s', time());
}
}
/**
* 获取统计信息
*/
public function get_statistics() {
$options = get_option('wp_article_refresh_options');
// 统计文章总数
$total_posts = wp_count_posts('post');
// 统计符合条件的文章数量
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'date_query' => array(
'before' => date('Y-m-d H:i:s', strtotime('-1 day')),
'after' => date('Y-m-d H:i:s', strtotime('-' . $options['days_range'] . ' days'))
),
'no_found_rows' => true
);
if (!empty($options['categories'])) {
$args['category__in'] = $options['categories'];
}
if (!empty($options['exclude_categories'])) {
$args['category__not_in'] = $options['exclude_categories'];
}
$query = new WP_Query($args);
$eligible_posts = $query->found_posts;
return array(
'total_posts' => $total_posts->publish,
'eligible_posts' => $eligible_posts,
'refreshed_today' => $options['refreshed_today'],
'daily_limit' => $options['daily_limit'],
'total_refreshed' => $options['total_refreshed'],
'is_enabled' => $options['enabled'],
'next_refresh' => wp_next_scheduled('wp_article_refresh_event')
? date('Y-m-d H:i:s', wp_next_scheduled('wp_article_refresh_event'))
: __('未设置', 'wp-article-refresh')
);
}
/**
* 处理AJAX请求
*/
public function handle_ajax() {
if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['nonce'], 'wp_article_refresh_ajax')) {
wp_die(__('无权限', 'wp-article-refresh'));
}
$action = sanitize_text_field($_POST['sub_action']);
switch ($action) {
case 'get_stats':
$stats = $this->get_statistics();
wp_send_json_success($stats);
break;
case 'refresh_now':
$result = $this->do_refresh();
wp_send_json_success(array('refreshed' => $result));
break;
default:
wp_send_json_error(__('未知操作', 'wp-article-refresh'));
}
}
/**
* 添加设置链接
*/
public function add_settings_link($links) {
$settings_link = '' . __('设置', 'wp-article-refresh') . '';
array_unshift($links, $settings_link);
return $links;
}
/**
* 加载资源文件
*/
public function enqueue_assets($hook) {
if ('toplevel_page_wp-article-refresh' !== $hook) {
return;
}
wp_enqueue_style('wp-article-refresh-admin', WP_ARTICLE_REFRESH_PLUGIN_URL . 'assets/css/admin.css', array(), WP_ARTICLE_REFRESH_VERSION);
wp_enqueue_script('wp-article-refresh-admin', WP_ARTICLE_REFRESH_PLUGIN_URL . 'assets/js/admin.js', array('jquery'), WP_ARTICLE_REFRESH_VERSION, true);
wp_localize_script('wp-article-refresh-admin', 'wpArticleRefresh', array(
'ajaxUrl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('wp_article_refresh_ajax'),
'strings' => array(
'confirm' => __('确定要手动刷新吗?', 'wp-article-refresh'),
'refreshing' => __('刷新中...', 'wp-article-refresh'),
'success' => __('刷新成功!', 'wp-article-refresh'),
'error' => __('刷新失败!', 'wp-article-refresh')
)
));
}
}
// 初始化插件
WP_Article_Refresh::get_instance();
// 创建模板目录
function wp_article_refresh_create_templates_dir() {
$dir = WP_ARTICLE_REFRESH_PLUGIN_DIR . 'templates';
if (!file_exists($dir)) {
mkdir($dir, 0755, true);
}
}
add_action('admin_init', 'wp_article_refresh_create_templates_dir');
盟军敢死队起源怎么购买-盟军敢死队起源购买攻略_创想鸟
- 创想鸟首页
- 用户投稿
盟军敢死队起源怎么购买-盟军敢死队起源购买攻略
程序猿
•
•
用户投稿 •
阅读 0
在游戏世界中,盟军敢死队起源以其独特的策略玩法吸引了大量玩家。以下为你提供详细的购买指南和玩法攻略。
盟军敢死队起源购买指南
首先,你可以选择通过正规的游戏平台进行购买。常见的平台如steam等,只需在搜索栏中输入“盟军敢死队起源”,就能找到该游戏。购买之前,请注意游戏的价格变动,有时可能会遇到打折促销活动,可以以更优惠的价格入手。同时,确保你的账号状态良好,以免因账号问题影响购买及后续游戏体验。在购买页面,仔细查阅游戏介绍、系统要求等信息,确认是否符合你的电脑配置。若对游戏有任何疑问,还可查看其他玩家的评价及讨论,进一步了解游戏情况后再进行购买操作。
游戏基本玩法

游戏中,玩家将操控一群各具特色的敢死队员执行各种危险任务。每个队员都有独特的技能,例如绿贝雷帽擅长近战格斗,狙击手则能在远距离精准射击。玩家需要根据任务场景和目标,合理安排队员行动。利用队员技能相互配合,悄无声息地接近敌人,避免被发现。可以让狙击手先解决远处的哨兵,然后让其他队员悄悄潜入,完成各种情报收集、破坏设施或营救目标等任务。
任务策略要点
电影座位购买预览3D效果
电影票购买时选择座位可体验所选择的位置3D视角
102 查看详情
在执行任务时,要善于观察环境。利用地形地貌,如草丛、建筑物等进行隐蔽。注意敌人的巡逻路线和视野范围,提前规划行动路线,避开敌人视线。同时,合理运用道具,像烟雾弹可制造掩护,方便队员移动。对于敌人的通讯设备、武器库等关键地点,要优先破坏或控制,削弱敌人战斗力。遇到敌人时,尽量采取潜行暗杀方式,若被发现,要迅速组织队员展开反击,灵活运用战术,各个击破敌人。
团队协作技巧
团队协作至关重要。不同队员的行动要紧密配合,比如让擅长开锁的队员打开门锁,其他队员跟进。在战斗中,队员之间要相互支援,有人吸引敌人火力,有人趁机迂回攻击。根据任务需求,适时切换队员控制,充分发挥每个队员的优势。并且,要时刻关注队员的生命值和体力,及时进行治疗和恢复,确保队伍战斗力。只有团队成员默契配合,才能在各种艰难任务中顺利完成目标,体验游戏的精彩与乐趣。
以上就是盟军敢死队起源怎么购买-盟军敢死队起源购买攻略的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/447566.html
赞 (0)
打赏
微信扫一扫
支付宝扫一扫
thinkphp提示方法参数错误id
上一篇
2025年11月7日 21:33:25
台式摄像头改网络监控头实战指南
下一篇
2025年11月7日 21:33:36
相关推荐
-
拖拽HTML文件到浏览器可直接加载页面;2. 通过菜单“打开文件”或快捷键Ctrl+O选择文件;3. 地址栏输入file:///加路径访问,注意斜杠格式;4. 双击文件用默认浏览器打开,推荐新手使用拖拽或Ctrl+O方式。 要让浏览器运行HTML文件,关键是正确打开并加载本地的HTML文件路径。操作…
-
1、可通过本地浏览器查看:使用SFTP下载HTML文件后双击用默认浏览器打开预览;2、启动轻量级Web服务器:在PuTTY中用Python命令python3 -m http.server 8000运行并本地访问服务器IP:8000查看;3、配置Apache:安装Apache2服务,将HTML文件放入…
-
可借助三种方法将美篇图文保存为本地HTML文件:一、用浏览器开发者工具手动提取并整理DOM结构;二、使用SingleFile等第三方工具自动抓取生成;三、通过Python脚本自动化解析与清洗网页内容。 如果您希望将美篇平台发布的图文内容保存为本地可编辑、可离线查看的HTML文件,但美篇本身未提供直接…
-
可通过拖拽HTML文件到Chrome窗口直接预览;2. 使用Chrome菜单中的“打开文件”功能选择并加载;3. 在地址栏输入file://加文件路径访问;4. 借助VS Code等编辑器的“在浏览器中打开”插件实现一键预览。 如果您编写了一个HTML文件,想要在Chrome浏览器中查看其效果,可以…
-
可通过四种方式预览HTML效果:一、双击本地.html文件用默认浏览器打开;二、用VS Code等编辑器配合Live Server插件实时刷新;三、按F12调出开发者工具检查DOM、样式和控制台错误;四、使用CodePen等在线平台编写并即时预览。 如果您编写了一段HTML代码,想要查看其在浏览器中…
-
可直接用现代浏览器打开HTML5文件:右键选择浏览器打开,或拖拽至浏览器窗口;遇API限制需启用本地访问权限;涉及AJAX等则需用HTTP服务器(如npx http-server)运行。 如果您希望在电脑上查看或运行HTML5页面文件,通常不需要额外下载HTML5本身,因为HTML5是浏览器内置的网…
-
首先编写HTML代码并保存为.html文件,例如index.html;然后通过双击文件或用浏览器打开来查看效果;最后可反复修改代码并刷新浏览器实时预览更新内容。 如果您想要创建一个网页并查看其效果,需要编写HTML代码并将其保存为HTML文件,然后通过浏览器打开。以下是完成这一过程的具体步骤: 一、…
-
可在%ignore_a_1%中用前端库直接生成Excel:一、SheetJS适合快速导出JSON/HTML为.xlsx;二、exceljs支持样式和公式但体积大;三、HTML表格转.xls为轻量兼容方案。 如果您希望在浏览器中直接生成并导出 Excel 文件,而无需后端参与,则可以借助轻量级前端 J…
-
可通过Windows设置、控制面板、注册表、PowerShell或macOS访达修改HTML文件默认浏览器:依次使用右键属性更改、默认程序关联、注册表HKEY_CLASSES_ROOT.html项编辑、Set-ItemProperty命令或macOS简介面板“更改所有…”实现。 如果您希望更改HTM…
-
HTML5提供requestFullscreen API实现元素级全屏,需用户交互触发并兼容前缀;F11键可触发浏览器级全屏,无需脚本且不可被干预;:fullscreen伪类仅对API全屏生效,用于定制样式;退出全屏须匹配进入方式,API全屏用exitFullscreen(),F11全屏只能手动退出…
-
应使用浏览器打开HTML文件并检查扩展名和编码:一、右键选择浏览器打开;二、在浏览器地址栏输入file:///路径访问;三、显示并确认扩展名为.html;四、确保文件含且保存为UTF-8无BOM;五、在系统默认应用中将.html关联至浏览器。 如果您在电脑上双击HTML文件却看到源代码而非渲染后的网…
-
需通过抖音官方嵌入代码、开放平台API或合规第三方解析服务实现HTML视频展示,注意HTTPS协议、权限设置及用户授权,严禁商用或二次剪辑。 如果您希望在HTML页面中直接展示抖音平台上的视频内容,则需要借助抖音官方提供的嵌入代码或第三方API接口。以下是实现此目标的具体操作步骤: 一、使用抖音官方…
-
可通过四种方法查看手机网页HTML源代码:一、使用DuckDuckGo或Kiwi等支持源码查看的第三方浏览器;二、在Chromium内核浏览器中于URL前添加view-source:前缀;三、通过Chrome DevTools远程调试连接手机与电脑;四、提交URL至viewsource.io等在线服…
-
原生HTML可在安卓设备上直接运行,只需将文件存入手机并用浏览器打开即可查看静态页面效果。1. 通过浏览器访问file路径加载本地HTML文件,支持纯前端代码但无法调用系统功能。2. 使用“HTML Viewer”等专用App可便捷预览并支持实时调试。3. 用Android Studio创建WebV…
-
HTML文件可直接在本地运行,只需用浏览器打开即可。1. 确保文件后缀为.html或.htm;2. 双击文件或右键选择浏览器打开;3. 通过浏览器菜单“打开文件”或快捷键Ctrl+O;4. 拖拽文件到浏览器标签页加载。注意外部资源路径需正确。 HTML 文件本身是静态网页文档,不需要服务器即可直接在…
-
将记事本编写的HTML代码保存为.html格式文件,通过“另存为”选择“所有文件”并添加.html扩展名;2. 双击或右键用浏览器打开该文件即可查看网页效果;3. 也可直接将文件拖拽至浏览器窗口快速预览;4. 熟悉命令行者可用cmd进入文件目录后输入start 文件名.html运行。 如果您已经使用…
-
首先保存HTML文件为.html格式,再通过首选参数设置默认浏览器,随后使用实时视图或F12键预览页面,若涉及动态功能则需配置本地站点服务器以确保正常运行。 如果您在Dreamweaver中编写了HTML代码,但页面未正确显示或无法查看效果,可能是由于文件未保存或未在浏览器中预览。以下是让DW(Dr…
-
通过配置EditPlus的用户工具将浏览器路径添加为外部程序,并设置快捷键,可实现HTML代码编写后一键在浏览器中预览效果。 如果您在使用EditPlus编写HTML代码后希望直接查看页面效果,但不知道如何配置运行环境,则可以通过设置自定义工具来实现快速预览。以下是具体操作步骤: 一、配置浏览器路径…
-
答案是使用手机浏览器直接打开本地HTML文件最方便,将文件保存至手机后通过文件管理器用浏览器打开即可预览;需要编辑时可使用Acode等代码App实现编写与实时预览;若在电脑开发,可通过同一Wi-Fi下启动本地服务器,手机输入电脑IP加端口访问测试;也可将代码上传至CodePen、JSFiddle等在…
-
可通过浏览器直接打开本地HTML文件预览效果。1、右键HTML文件选择用Chrome等浏览器打开即可显示页面内容;2、或在浏览器中按Ctrl+O导入本地文件浏览;3、对于含JS模块等资源的项目,需安装Node.js后使用http-server搭建本地服务器,通过http://localhost:80…