Ikviens var palaist Jūsu vietnes ieplānotos uzdevumus caur wp-cron.php
Vispārīgas instrukcijas. Atveriet šo rakstu no sava PageCheck pārskata, lai redzētu to aizpildītu ar Jūsu vietnes adresi un noteikumiem tās tīmekļa serverim.
Kas tas ir
WordPress izpilda ieplānotos uzdevumus – ieplānotu ierakstu publicēšanu, e-pastu sūtīšanu, rezerves kopijas, spraudņu atjauninājumus – caur failu wp-cron.php. Pēc noklusējuma tas pats palaiž šo failu, kamēr apmeklētāji pārlūko vietni, tāpēc failam jāatbild uz pieprasījumiem no interneta.
Kas ir nepareizi
Fails atbild ikvienam, tāpēc ikviens, arī boti, var palaist vietnes ieplānotos uzdevumus tik bieži, cik grib. Katrs pieprasījums ielādē visu WordPress, tāpēc atkārtoti pieprasījumi ir lēts veids, kā noslogot serveri un palēnināt vietni. Apmeklējumu palaisti uzdevumi turklāt ir neuzticami: maz apmeklētā vietnē tie izpildās ar nokavēšanos.
Kā labot
Veiciet soļus šādā secībā: ja vispirms bloķēsiet failu, apstāsies ieplānotie ieraksti un e-pasti.
1. Palaidiet ieplānotos uzdevumus no servera. Hostinga vadības panelī pievienojiet ieplānotu uzdevumu (cron), kas izpildās ik pēc 5 minūtēm:
-
Plesk: Websites & Domains → Scheduled Tasks → Add Task, tips “Run a PHP script”, skripts
httpdocs/wp-cron.php. -
cPanel: Cron Jobs, komanda
cd /home/USER/public_html && php wp-cron.php(ar savu konta nosaukumu un mapi). -
Serveris ar WP-CLI:
wp cron event run --due-now --path=/path/to/site.
Palaidiet failu ar PHP serverī, nevis atverot tā adresi caur internetu (wget vai curl): 3. solis to bloķē. Pārvaldītiem WordPress hostingiem servera uzdevums bieži jau ir – pajautājiet viņiem.
2. Neļaujiet WordPress to palaist lapu skatījumos.
Pievienojiet šo rindiņu failam wp-config.php, virs rindiņas /* That's all, stop editing! */:
wp-config.php
define( 'DISABLE_WP_CRON', true );
3. Aizveriet failu piekļuvei no ārpuses. Izmantojiet noteikumu savam tīmekļa serverim (hostings var pateikt, kurš tas ir):
Apache vai LiteSpeed: vietnes galvenās mapes failā .htaccess, virs rindiņas “# BEGIN WordPress”
<Files "wp-cron.php">
Require all denied
</Files>nginx: vietnes server blokā
location = /wp-cron.php {
deny all;
} Cloudflare to var bloķēt arī tur: Security → WAF → Custom rules, noteikums “URI Path equals /wp-cron.php” ar darbību Block.
4. Pārbaudiet.
Atveriet https://example.com/wp-cron.php: tagad tai jāatbild “Forbidden” (403). Ieplānojiet testa ierakstu dažas minūtes uz priekšu un pārliecinieties, ka tas tiek publicēts laikā, tad palaidiet šo pārbaudi vēlreiz.
Close wp-cron.php on my WordPress site to requests from the internet, without breaking scheduled tasks. https://example.com/wp-cron.php currently answers anyone.
The web server type is not known; check which one the site runs on.
Steps, in this order:
1. Set up a server-side scheduled task that runs WordPress cron every 5 minutes with PHP on the server (php wp-cron.php from the site's folder, or wp cron event run --due-now). Not wget/curl over HTTP: step 3 would block it.
2. Add define( 'DISABLE_WP_CRON', true ); to wp-config.php above "That's all, stop editing!".
3. Deny HTTP access to /wp-cron.php: on Apache/LiteSpeed a <Files "wp-cron.php"> Require all denied </Files> block in .htaccess above # BEGIN WordPress; on nginx location = /wp-cron.php { deny all; } in the server block.
4. Verify: /wp-cron.php answers 403, wp cron event list shows no overdue events after 10 minutes, and a post scheduled a few minutes ahead is published on time.
Tell me exactly which files you changed and what to check in the hosting control panel.
Resources:
- Hooking WP-Cron into the system task scheduler (WordPress.org): https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/
Tēma: example.com – lūdzu palaist WordPress ieplānotos uzdevumus no servera un aizvērt wp-cron.php Labdien! Vietnes pārbaude (PageCheck) atklāja, ka https://example.com/wp-cron.php atbild ikvienam, tāpēc ikviens var palaist mūsu vietnes ieplānotos uzdevumus un noslogot serveri. Lūdzu, izdariet šādā secībā: 1. Pievienot servera cron uzdevumu, kas ik pēc 5 minūtēm ar PHP palaiž wp-cron.php. 2. Pievienot define( 'DISABLE_WP_CRON', true ); failam wp-config.php. 3. Bloķēt tīmekļa pieprasījumus uz wp-cron.php (.htaccess, nginx konfigurācijā vai ugunsmūrī). 4. Pārbaudīt, ka ieplānotie ieraksti un e-pasti joprojām tiek nosūtīti laikā. Resursi: - Hooking WP-Cron into the system task scheduler (WordPress.org): https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/ Paldies!
Pārbaudiet savu vietni, lai uzzinātu, vai tai ir šī problēma. Pārbaudīt vietni