mirror of
https://github.com/WenPai-org/wp-archiver.git
synced 2025-08-17 19:31:09 +08:00
升级至 1.3.0 稳定版本
This commit is contained in:
parent
dd0566d744
commit
82023ed8d0
7 changed files with 548 additions and 45 deletions
|
@ -10,7 +10,9 @@
|
|||
#wp-admin-bar-archiver.archiver-failure .ab-item {
|
||||
color: #dc3232!important
|
||||
}
|
||||
|
||||
#wp-admin-bar-archiver .ab-icon.dashicons.dashicons-backup {
|
||||
top: 2px;
|
||||
}
|
||||
#wp-admin-bar-archiver-trigger .ab-icon {
|
||||
display: inline-block;
|
||||
float: right!important;
|
||||
|
@ -44,9 +46,29 @@
|
|||
}
|
||||
}
|
||||
|
||||
.wrap.archiver-settings {
|
||||
max-width: 1200px
|
||||
.nav-tab {
|
||||
border: 0px solid #c3c4c7;
|
||||
background: #ffffff;
|
||||
}
|
||||
.nav-tab.nav-tab-active {
|
||||
border-bottom: 2px solid #007cba;
|
||||
font-weight: 600;
|
||||
background: #f0f0f1;
|
||||
}
|
||||
.nav-tab:hover:not(.active) {
|
||||
background: #f0f0f1;
|
||||
border-bottom-color: #dcdcde;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: #fff;
|
||||
border: 1px solid #ccd0d4;
|
||||
border-radius: 4px;
|
||||
max-width: unset;
|
||||
margin-top: 20px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
|
||||
.postbox {
|
||||
border: 0 solid #c3c4c7;
|
||||
|
|
2
css/archiver.min.css
vendored
2
css/archiver.min.css
vendored
|
@ -1 +1 @@
|
|||
#wp-admin-bar-archiver .ab-item{transition:all .3s ease;color:#72aee6}#wp-admin-bar-archiver.archiver-success .ab-item{color:#46b450!important}#wp-admin-bar-archiver.archiver-failure .ab-item{color:#dc3232!important}#wp-admin-bar-archiver-trigger .ab-icon{display:inline-block;float:right!important;margin:0 0 0 6px;opacity:0;transition:opacity .3s ease;vertical-align:middle}#wp-admin-bar-archiver-trigger .ab-icon::before{content:"\f463";font-family:dashicons;font-size:18px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wp-admin-bar-archiver-trigger.archiver-active .ab-icon{opacity:1;animation:archiver-spin 1s infinite linear}@keyframes archiver-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.wrap.archiver-settings{max-width:1200px}.postbox{border:0 solid #c3c4c7;background:#ffffff00}.archiver-stats-container{display:flex;gap:20px;margin:0 0 20px}.archiver-stat-card{flex:1;background:#fff;border:1px solid #ccd0d4;border-radius:4px;padding:15px;text-align:center;box-shadow:0 1px 1px rgba(0,0,0,.04)}.archiver-stat-card h3{margin:0 0 10px;font-size:14px;font-weight:500;color:#646970}.archiver-stat-card .stat-value{font-size:18px;font-weight:600;color:#1d2327}.archiver-pending-list{max-height:300px;overflow-y:auto;border:1px solid #ddd;padding:10px;background:#f9f9f9;margin:0 0 20px}.archiver-pending-list ul{margin:0;padding:0;list-style:none}.archiver-pending-list li{padding:5px 0;border-bottom:1px solid #eee;word-break:break-all}.archiver-pending-list li:last-child{border-bottom:none}@media (max-width:782px){.archiver-stats-container{flex-direction:column}.archiver-stat-card{width:100%}}#archiver_post,#archiver_terms{background:#fff;border-radius:4px}#archiver-snapshots ul{margin:0;padding:0;list-style:none}#archiver-snapshots li{padding:5px 0;border-bottom:1px solid #eee}#archiver-snapshots li:last-child{border-bottom:none}#archiver-snapshots a{text-decoration:none;color:#2271b1}#archiver-snapshots a:hover{text-decoration:underline}#archiver-status{vertical-align:middle;color:#646970}#archiver-status .dashicons{vertical-align:middle;margin-right:3px}#archiver-immediate-snapshot{margin-top:10px}
|
||||
#wp-admin-bar-archiver .ab-item{transition:all .3s ease;color:#72aee6}#wp-admin-bar-archiver.archiver-success .ab-item{color:#46b450!important}#wp-admin-bar-archiver.archiver-failure .ab-item{color:#dc3232!important}#wp-admin-bar-archiver .ab-icon.dashicons.dashicons-backup{top:2px}#wp-admin-bar-archiver-trigger .ab-icon{display:inline-block;float:right!important;margin:0 0 0 6px;opacity:0;transition:opacity .3s ease;vertical-align:middle}#wp-admin-bar-archiver-trigger .ab-icon::before{content:"\f463";font-family:dashicons;font-size:18px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wp-admin-bar-archiver-trigger.archiver-active .ab-icon{opacity:1;animation:archiver-spin 1s infinite linear}@keyframes archiver-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.nav-tab{border:0 solid #c3c4c7;background:#fff}.nav-tab.nav-tab-active{border-bottom:2px solid #007cba;font-weight:600;background:#f0f0f1}.nav-tab:hover:not(.active){background:#f0f0f1;border-bottom-color:#dcdcde}.card{background:#fff;border:1px solid #ccd0d4;border-radius:4px;max-width:unset;margin-top:20px;padding:20px}.postbox{border:0 solid #c3c4c7;background:#ffffff00}.archiver-stats-container{display:flex;gap:20px;margin:0 0 20px}.archiver-stat-card{flex:1;background:#fff;border:1px solid #ccd0d4;border-radius:4px;padding:15px;text-align:center;box-shadow:0 1px 1px rgba(0,0,0,.04)}.archiver-stat-card h3{margin:0 0 10px;font-size:14px;font-weight:500;color:#646970}.archiver-stat-card .stat-value{font-size:18px;font-weight:600;color:#1d2327}.archiver-pending-list{max-height:300px;overflow-y:auto;border:1px solid #ddd;padding:10px;background:#f9f9f9;margin:0 0 20px}.archiver-pending-list ul{margin:0;padding:0;list-style:none}.archiver-pending-list li{padding:5px 0;border-bottom:1px solid #eee;word-break:break-all}.archiver-pending-list li:last-child{border-bottom:none}@media (max-width:782px){.archiver-stats-container{flex-direction:column}.archiver-stat-card{width:100%}}#archiver_post,#archiver_terms{background:#fff;border-radius:4px}#archiver-snapshots ul{margin:0;padding:0;list-style:none}#archiver-snapshots li{padding:5px 0;border-bottom:1px solid #eee}#archiver-snapshots li:last-child{border-bottom:none}#archiver-snapshots a{text-decoration:none;color:#2271b1}#archiver-snapshots a:hover{text-decoration:underline}#archiver-status{vertical-align:middle;color:#646970}#archiver-status .dashicons{vertical-align:middle;margin-right:3px}#archiver-immediate-snapshot{margin-top:10px}
|
|
@ -38,10 +38,48 @@ class Archiver_Admin {
|
|||
$selected_post_types = get_option('archiver_post_types', array('post', 'page'));
|
||||
?>
|
||||
<div class="wrap">
|
||||
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
|
||||
<h1><?php echo esc_html(get_admin_page_title()); ?>
|
||||
<span style="font-size: 13px; padding-left: 10px;"><?php printf(esc_html__('Version: %s', 'archiver'), esc_html(ARCHIVER_VERSION)); ?></span>
|
||||
<a href="https://sharecms.com/document/wp-archiver" target="_blank" class="button button-secondary" style="margin-left: 10px;"><?php esc_html_e('Document', 'archiver'); ?></a>
|
||||
<a href="https://sharecms.com/forums/" target="_blank" class="button button-secondary"><?php esc_html_e('Support', 'archiver'); ?></a>
|
||||
</h1>
|
||||
|
||||
<div class="card">
|
||||
<h3><?php _e('Archive Statistics', 'archiver'); ?></h3>
|
||||
<p><?php _e('View statistics and records of Archive.', 'archiver'); ?></p>
|
||||
|
||||
<div class="archiver-stats-container">
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Pending URLs', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo number_format(count(get_option('archiver_urls_to_update', array()))); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Total Archived', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo number_format((int) get_option('archiver_total_archived', 0)); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Failed Snapshots', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo number_format((int) get_option('archiver_failed_snapshots', 0)); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Last Run', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo esc_html(get_option('archiver_last_run', __('Never', 'archiver'))); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Next Run', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php
|
||||
$next_run = wp_next_scheduled('archiver_process_urls');
|
||||
echo $next_run ? esc_html(date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $next_run)) : __('Not scheduled', 'archiver');
|
||||
?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2 class="nav-tab-wrapper">
|
||||
<a href="#general" class="nav-tab nav-tab-active" data-tab="general"><?php _e('General Settings', 'archiver'); ?></a>
|
||||
<a href="#tools" class="nav-tab" data-tab="tools"><?php _e('Tools', 'archiver'); ?></a>
|
||||
<a href="#tools" class="nav-tab" data-tab="tools"><?php _e('Snapshot Tools', 'archiver'); ?></a>
|
||||
<a href="#about" class="nav-tab" data-tab="about"><?php _e('About', 'archiver'); ?></a>
|
||||
</h2>
|
||||
<?php settings_errors('archiver_messages'); ?>
|
||||
|
||||
|
@ -71,6 +109,8 @@ class Archiver_Admin {
|
|||
</tr>
|
||||
</table>
|
||||
<h3><?php _e('Update Frequency', 'archiver'); ?></h3>
|
||||
<p><?php _e('Adjust the update frequency to avoid excessive requests.', 'archiver'); ?></p>
|
||||
|
||||
<table class="form-table">
|
||||
<tr>
|
||||
<th scope="row"><?php _e('Frequency', 'archiver'); ?></th>
|
||||
|
@ -102,32 +142,6 @@ class Archiver_Admin {
|
|||
<div id="tools" class="archiver-tab-content" style="display: none;">
|
||||
<div class="postbox">
|
||||
<div class="inside">
|
||||
<h3><?php _e('Archive Statistics', 'archiver'); ?></h3>
|
||||
<div class="archiver-stats-container">
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Pending URLs', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo number_format(count(get_option('archiver_urls_to_update', array()))); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Total Archived', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo number_format((int) get_option('archiver_total_archived', 0)); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Failed Snapshots', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo number_format((int) get_option('archiver_failed_snapshots', 0)); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Last Run', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php echo esc_html(get_option('archiver_last_run', __('Never', 'archiver'))); ?></div>
|
||||
</div>
|
||||
<div class="archiver-stat-card">
|
||||
<h3><?php _e('Next Run', 'archiver'); ?></h3>
|
||||
<div class="stat-value"><?php
|
||||
$next_run = wp_next_scheduled('archiver_process_urls');
|
||||
echo $next_run ? esc_html(date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $next_run)) : __('Not scheduled', 'archiver');
|
||||
?></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3><?php _e('Pending Updates', 'archiver'); ?></h3>
|
||||
<?php $this->display_pending_updates(); ?>
|
||||
<form method="post" action="">
|
||||
|
@ -168,8 +182,42 @@ class Archiver_Admin {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="about" class="archiver-tab-content" style="display: none;">
|
||||
<div class="postbox">
|
||||
<div class="inside">
|
||||
<h3><?php _e('About Internet Archive', 'archiver'); ?></h3>
|
||||
|
||||
<p><?php _e('The Internet Archive is a non-profit digital library that preserves web pages, books, audio recordings, videos, and software for future generations. One of its most well-known services is the Wayback Machine, which allows users to view archived versions of web pages across time.', 'archiver'); ?></p>
|
||||
|
||||
<h4><?php _e('Why Archive Your Website?', 'archiver'); ?></h4>
|
||||
<ul style="list-style: decimal; padding: inherit;">
|
||||
<li><?php _e('Preserve your content against accidental deletion or server failures', 'archiver'); ?></li>
|
||||
<li><?php _e('Maintain a public record of your published work', 'archiver'); ?></li>
|
||||
<li><?php _e('Protect against link rot (when external links stop working)', 'archiver'); ?></li>
|
||||
<li><?php _e('Establish historical context and content provenance', 'archiver'); ?></li>
|
||||
</ul>
|
||||
|
||||
<h3><?php _e('About WP Archiver', 'archiver'); ?></h3>
|
||||
<p><?php _e('This plugin automatically archives your WordPress content to the Internet Archive whenever you publish or update posts, pages, or other content types. It helps ensure your valuable content is preserved for the long term.', 'archiver'); ?></p>
|
||||
|
||||
<h3><?php _e('Best Practices', 'archiver'); ?></h3>
|
||||
<ul style="list-style: decimal; padding: inherit;">
|
||||
<li><?php _e('Archive important content immediately after publication', 'archiver'); ?></li>
|
||||
<li><?php _e('For large sites, use weekly archiving to avoid overwhelming the service', 'archiver'); ?></li>
|
||||
<li><?php _e('Regularly check your archived content to ensure it was captured correctly', 'archiver'); ?></li>
|
||||
<li><?php _e('Consider manually archiving key pages after major updates', 'archiver'); ?></li>
|
||||
</ul>
|
||||
|
||||
<p><?php _e('Thank you for helping preserve the web by archiving your content!', 'archiver'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
@ -298,7 +346,7 @@ private function clear_cache() {
|
|||
return;
|
||||
}
|
||||
echo '<p>' . sprintf(__('Total pending URLs: %d', 'archiver'), count($urls_to_update)) . '</p>';
|
||||
echo '<div style="max-height: 300px; overflow-y: scroll; border: 1px solid #ddd; padding: 10px; background: #f9f9f9;">';
|
||||
echo '<div style="max-height: 300px; overflow-y: scroll; border: 1px solid #ddd; border-radius: 6px; padding: 10px; background: #f9f9f9;">';
|
||||
echo '<ul>';
|
||||
foreach (array_slice($urls_to_update, 0, 50) as $url) {
|
||||
echo '<li style="word-break: break-all;">' . esc_html($url) . '</li>';
|
||||
|
|
|
@ -10,7 +10,7 @@ class Archiver {
|
|||
protected $snapshot_max_count;
|
||||
protected $wayback_machine_url_save = 'https://web.wenpai.net/save/';
|
||||
protected $wayback_machine_url_fetch_archives = 'https://web.wenpai.net/cdx/';
|
||||
protected $wayback_machine_url_view = 'https://web.archive.org/web/';
|
||||
protected $wayback_machine_url_view = 'https://web.wenpai.net/web/';
|
||||
protected $current_permalink = '';
|
||||
protected static $instance = null;
|
||||
|
||||
|
@ -149,7 +149,7 @@ class Archiver {
|
|||
$time_format = get_option('time_format');
|
||||
echo '<ul>';
|
||||
foreach ($snapshots as $snapshot) {
|
||||
$date_time = date('Y-m-d H:i:s', strtotime($snapshot['timestamp']));
|
||||
$date_time = date('Y.m.d H:i', strtotime($snapshot['timestamp']));
|
||||
$adjusted_date = get_date_from_gmt($date_time);
|
||||
$snapshot_url = $this->wayback_machine_url_view . $snapshot['timestamp'] . '/' . $snapshot['original'];
|
||||
$date_time = date_i18n($date_format . ' @ ' . $time_format, strtotime($adjusted_date));
|
||||
|
@ -220,9 +220,9 @@ class Archiver {
|
|||
}
|
||||
$wp_admin_bar->add_node([
|
||||
'id' => 'archiver',
|
||||
'title' => '<span class="ab-icon dashicons dashicons-archive"></span><span class="ab-label">' . __('Archiver', 'archiver') . '</span>',
|
||||
'href' => $this->wayback_machine_url_view . '*/' . $url,
|
||||
'meta' => ['target' => '_blank']
|
||||
'title' => '<span class="ab-icon dashicons dashicons-backup"></span><span class="ab-label">' . __('Archiver', 'archiver') . '</span>',
|
||||
'href' => admin_url('tools.php?page=archiver-settings'),
|
||||
'meta' => ['target' => '_self']
|
||||
]);
|
||||
$snapshots = $this->get_post_snapshots();
|
||||
$snapshot_count = is_wp_error($snapshots) ? 0 : count($snapshots);
|
||||
|
@ -663,13 +663,32 @@ public function process_urls_for_update() {
|
|||
}
|
||||
|
||||
public function reschedule_cron_task($frequency) {
|
||||
$timestamp = wp_next_scheduled('archiver_process_urls');
|
||||
if ($timestamp) {
|
||||
wp_unschedule_event($timestamp, 'archiver_process_urls');
|
||||
}
|
||||
wp_schedule_event(time(), $frequency, 'archiver_process_urls');
|
||||
$timestamp = wp_next_scheduled('archiver_process_urls');
|
||||
if ($timestamp) {
|
||||
wp_unschedule_event($timestamp, 'archiver_process_urls');
|
||||
error_log("Archiver: Cleared previous cron task scheduled at " . date('Y.m.d H:i', $timestamp));
|
||||
}
|
||||
|
||||
$last_run = get_option('archiver_last_run'); // e.g., "2025-04-05 10:33:46"
|
||||
$start_time = time(); // Default to now
|
||||
|
||||
if ($last_run && $frequency === 'hourly') {
|
||||
$last_run_timestamp = strtotime($last_run); // Convert to UTC timestamp
|
||||
$next_hour = strtotime('+1 hour', $last_run_timestamp); // Next hourly slot
|
||||
if ($next_hour > time()) {
|
||||
$start_time = $next_hour; // Schedule from next hour after last run
|
||||
}
|
||||
}
|
||||
|
||||
$result = wp_schedule_event($start_time, $frequency, 'archiver_process_urls');
|
||||
if ($result === false) {
|
||||
error_log("Archiver: Failed to schedule cron task with frequency $frequency");
|
||||
} else {
|
||||
$next_run = wp_next_scheduled('archiver_process_urls');
|
||||
error_log("Archiver: Cron task rescheduled to $frequency, next run: " . date('Y.m.d H:i', $next_run) . " (Timezone: " . wp_timezone_string() . ")");
|
||||
}
|
||||
}
|
||||
|
||||
public static function deactivate() {
|
||||
$timestamp = wp_next_scheduled('archiver_process_urls');
|
||||
if ($timestamp) {
|
||||
|
|
BIN
languages/archiver-zh_CN.mo
Normal file
BIN
languages/archiver-zh_CN.mo
Normal file
Binary file not shown.
414
languages/archiver-zh_CN.po
Normal file
414
languages/archiver-zh_CN.po
Normal file
|
@ -0,0 +1,414 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WP Archiver\n"
|
||||
"POT-Creation-Date: 2025-04-06 09:41+0800\n"
|
||||
"PO-Revision-Date: 2025-04-06 09:41+0800\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.6\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
|
||||
"X-Poedit-WPHeader: archiver.php\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: "
|
||||
"__;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
||||
"X-Poedit-SearchPath-0: .\n"
|
||||
"X-Poedit-SearchPathExcluded-0: *.min.js\n"
|
||||
|
||||
#: includes/class-archiver-admin.php:25
|
||||
msgid "Archiver Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:26 includes/class-archiver.php:25
|
||||
#: includes/class-archiver.php:223
|
||||
msgid "Archiver"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:35
|
||||
msgid "You do not have sufficient permissions to access this page."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:42
|
||||
#, php-format
|
||||
msgid "Version: %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:43
|
||||
msgid "Document"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:44
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:48
|
||||
msgid "Archive Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:49
|
||||
msgid "View statistics and records of Archive."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:53
|
||||
msgid "Pending URLs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:57
|
||||
msgid "Total Archived"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:61
|
||||
msgid "Failed Snapshots"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:65
|
||||
msgid "Last Run"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:66
|
||||
msgid "Never"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:69
|
||||
msgid "Next Run"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:72
|
||||
msgid "Not scheduled"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:80
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:81
|
||||
msgid "Snapshot Tools"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:82
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:92
|
||||
msgid "Content Types to Archive"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:93
|
||||
msgid ""
|
||||
"Select which content types should be automatically archived when published "
|
||||
"or updated."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:96
|
||||
msgid "Post Types"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:111
|
||||
msgid "Update Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:112
|
||||
msgid "Adjust the update frequency to avoid excessive requests."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:116
|
||||
msgid "Frequency"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:120
|
||||
msgid "Hourly"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:123
|
||||
msgid "Twice Daily"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:126
|
||||
msgid "Daily"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:129
|
||||
msgid "Weekly"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:132
|
||||
msgid "How often should the plugin check for new archives?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:136
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:145
|
||||
msgid "Pending Updates"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:152
|
||||
msgid "Run Manual Update Now"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:153
|
||||
msgid "Process all pending URLs immediately."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:156
|
||||
msgid "Bulk Actions"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:161
|
||||
msgid "Select bulk action..."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:162
|
||||
msgid "Archive all published posts"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:163
|
||||
msgid "Clear pending queue"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:169
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:172
|
||||
msgid "Debug Tools"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:178
|
||||
msgid "Clear Cache"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:179
|
||||
msgid "Clear all cached snapshot data."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:189
|
||||
msgid "About Internet Archive"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:191
|
||||
msgid ""
|
||||
"The Internet Archive is a non-profit digital library that preserves web "
|
||||
"pages, books, audio recordings, videos, and software for future generations. "
|
||||
"One of its most well-known services is the Wayback Machine, which allows "
|
||||
"users to view archived versions of web pages across time."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:193
|
||||
msgid "Why Archive Your Website?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:195
|
||||
msgid "Preserve your content against accidental deletion or server failures"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:196
|
||||
msgid "Maintain a public record of your published work"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:197
|
||||
msgid "Protect against link rot (when external links stop working)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:198
|
||||
msgid "Establish historical context and content provenance"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:201
|
||||
msgid "About WP Archiver"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:202
|
||||
msgid ""
|
||||
"This plugin automatically archives your WordPress content to the Internet "
|
||||
"Archive whenever you publish or update posts, pages, or other content types. "
|
||||
"It helps ensure your valuable content is preserved for the long term."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:204
|
||||
msgid "Best Practices"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:206
|
||||
msgid "Archive important content immediately after publication"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:207
|
||||
msgid "For large sites, use weekly archiving to avoid overwhelming the service"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:208
|
||||
msgid ""
|
||||
"Regularly check your archived content to ensure it was captured correctly"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:209
|
||||
msgid "Consider manually archiving key pages after major updates"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:212
|
||||
msgid "Thank you for helping preserve the web by archiving your content!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:233
|
||||
msgid "Manual update triggered. The update will run in the background."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:250
|
||||
msgid "Please select at least one post type to archive."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:261
|
||||
msgid "Invalid post types selected."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:276
|
||||
msgid "Settings saved successfully."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:292
|
||||
msgid "Pending queue has been cleared."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:300
|
||||
msgid "Please select a valid bulk action."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:322
|
||||
#, php-format
|
||||
msgid "%d posts have been added to the archive queue."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:337
|
||||
msgid "All cached data has been cleared."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:345
|
||||
msgid "No pending updates."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:348
|
||||
#, php-format
|
||||
msgid "Total pending URLs: %d"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver-admin.php:355
|
||||
msgid "more"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:89 includes/class-archiver.php:105
|
||||
#: includes/class-archiver.php:124
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:142
|
||||
msgid ""
|
||||
"No archives yet. A snapshot request has been scheduled and will be processed "
|
||||
"soon."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:144
|
||||
msgid "There are no archives of this URL."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:164
|
||||
msgid "See all snapshots ↗"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:167
|
||||
msgid "Archive Now"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:175
|
||||
msgid "Security check failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:180
|
||||
msgid "You do not have permission to perform this action."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:186
|
||||
msgid "Invalid URL provided."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:203
|
||||
msgid "Snapshot created successfully!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:208
|
||||
msgid "Failed to retrieve snapshots."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:235
|
||||
msgid "Snapshots"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:242
|
||||
msgid "Trigger Snapshot"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:445
|
||||
msgid "Triggering snapshot..."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:446
|
||||
msgid "Snapshot triggered successfully!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:447 includes/class-archiver.php:661
|
||||
msgid "Failed to trigger snapshot."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:475
|
||||
msgid ""
|
||||
"Archiver is currently disabled via the <code>archiver_can_run</code> filter."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:491
|
||||
msgid "You do not have permissions to trigger snapshots."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:495
|
||||
msgid "Invalid URL parameter."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:500
|
||||
msgid "Snapshot request recorded and will be processed soon."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:643
|
||||
msgid "URL cannot be empty."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-archiver.php:647
|
||||
msgid "Snapshot already taken recently."
|
||||
msgstr ""
|
||||
|
||||
#: js/archiver.js:36
|
||||
msgid "Unknown error occurred"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin Name of the plugin/theme
|
||||
msgid "WP Archiver"
|
||||
msgstr ""
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://wenpai.org/plugins/wp-archiver"
|
||||
msgstr ""
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Archive your content using the Wayback Machine."
|
||||
msgstr ""
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "WenPai.org"
|
||||
msgstr ""
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "https://wenpai.org/"
|
||||
msgstr ""
|
|
@ -3,7 +3,7 @@
|
|||
* Plugin Name: WP Archiver
|
||||
* Plugin URI: http://wenpai.org/plugins/wp-archiver
|
||||
* Description: Archive your content using the Wayback Machine.
|
||||
* Version: 1.3.0
|
||||
* Version: 1.3.1
|
||||
* Author: WenPai.org
|
||||
* Author URI: https://wenpai.org/
|
||||
* License: GPL-2.0+
|
||||
|
@ -17,7 +17,7 @@ if (!defined('WPINC')) {
|
|||
die;
|
||||
}
|
||||
|
||||
define('ARCHIVER_VERSION', '1.3.0');
|
||||
define('ARCHIVER_VERSION', '1.3.1');
|
||||
define('ARCHIVER_PLUGIN_DIR_URL', plugin_dir_url(__FILE__));
|
||||
define('ARCHIVER_PLUGIN_DIR_PATH', plugin_dir_path(__FILE__));
|
||||
define('ARCHIVER_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
Loading…
Add table
Add a link
Reference in a new issue