| Server IP : 167.99.224.18 / Your IP : 216.73.216.136 Web Server : Apache/2.4.41 (Ubuntu) System : Linux wordpress-ubuntu-s-1vcpu-1gb-nyc1-01 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.0.25 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins-old/simply-static/src/crawler/ |
Upload File : |
<?php
namespace Simply_Static\Crawler;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Simply Static Archive Crawler class
*
* This crawler detects archive URLs (yearly, monthly, daily).
*/
class Archive_Crawler extends Crawler {
/**
* Crawler ID.
* @var string
*/
protected $id = 'archive';
/**
* Not active by default on new installations.
*
* @var bool
*/
protected $active_by_default = false;
/**
* Constructor
*/
public function __construct() {
$this->name = __( 'Archive URLs', 'simply-static' );
$this->description = __( 'Detects yearly, monthly, and daily archive URLs.', 'simply-static' );
}
/**
* Detect archive URLs.
*
* @return array List of archive URLs
*/
public function detect() : array {
$archive_urls = [];
// Get yearly archives
$yearly_archives = wp_get_archives(
[
'type' => 'yearly',
'echo' => 0,
'format' => 'custom',
'before' => '',
'after' => '|'
]
);
// Get monthly archives
$monthly_archives = wp_get_archives(
[
'type' => 'monthly',
'echo' => 0,
'format' => 'custom',
'before' => '',
'after' => '|'
]
);
// Get daily archives
$daily_archives = wp_get_archives(
[
'type' => 'daily',
'echo' => 0,
'format' => 'custom',
'before' => '',
'after' => '|'
]
);
// Combine all archive HTML
$archive_html = $yearly_archives . $monthly_archives . $daily_archives;
// Extract URLs from the HTML
preg_match_all( '/<a href=["\']([^"\']+)["\']/', $archive_html, $matches );
if ( isset( $matches[1] ) && ! empty( $matches[1] ) ) {
$archive_urls = $matches[1];
}
return $archive_urls;
}
}