Cron se nespouští
Dobrý den,
vytvořil jsem php soubor s názvem topovani.php, který je umístěný v www/domains/sexsexsex.cz/
Můj skript je zcela jednoduchý, resetuje meta field na výchozí hodnotu 0. Když kód vložím do wordpressu function.php, tak se automaticky zapne a funguje jak má. Function.php kód:
<?php
function reset_reputace() {
$default_reputace = 0;
$allposts = get_posts(
array(
'post_type' => 'partner-na-erotiku',
'numberposts' => -1,
'meta_key' => 'reputace', // Změněno na váš meta key
)
);
foreach ($allposts as $eachpost) {
// Resetujte hodnotu meta fieldu "reputace" na výchozí hodnotu
update_post_meta($eachpost->ID, 'reputace', $default_reputace);
}
}
add_action('init', 'reset_reputace');
?>
Ve Webhosting – Cron jsem vytvořil Cron, který se spustí v celou hodinu (pro zkoušku, že to bude fungovat. Poté přenastavím na půlnoc). Pokud kliknu na „Ověřit možné spuštění“ tak mi napíše „CRON topovani (http://sexsexsex.cz/topovani.php) je možné spustit“ což je dobré znamení. Ale když zkouším zapnout Cron manuálně, tudíž do prohlížeče zadám URL adresu „http://sexsexsex.cz/topovani.php“ tak mi vypíše následující chybu:
Fatal error: Uncaught Error: Call to undefined function add_action() in /data/web/virtuals/333435/virtual/www/domains/sexsexsex.cz/topovani.php:19 Stack trace: #0 {main} thrown in /data/web/virtuals/333435/virtual/www/domains/sexsexsex.cz/topovani.php on line 19
S Cronem pracuji poprvé. Poradíte mi, co mám změnit aby vše fungovalo jak má?
Předem děkuji za jakoukoli pomoc.
PS. máte nějaký návod, jak Cron zabezpečit, aby nikdo cizí nemohl přes URL zapnout tento skript? Udělalo by to pak velké zmatky.
4 Odpověď
OPRAVA: v textu jsem omylem napsal function.php místo topování.php, pardon. Takže tento kód:
<?php
function reset_reputace() {
$default_reputace = 0;
$allposts = get_posts(
array(
'post_type' => 'partner-na-erotiku',
'numberposts' => -1,
'meta_key' => 'reputace', // Změněno na váš meta key
)
);
foreach ($allposts as $eachpost) {
// Resetujte hodnotu meta fieldu "reputace" na výchozí hodnotu
update_post_meta($eachpost->ID, 'reputace', $default_reputace);
}
}
add_action('init', 'reset_reputace');
?>
je v topovani.php. Jinak function.php je klasický z wordpressu.
Co mi v mém topovani.php chybí?