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ěď
S php jsem obeznámen pouze krátce, mým selským rozumem jsem si představil, že vytvořím soubor topovani.php, do souboru vložím potřebnou skript, vložím ji do adresáře www/domains/sexsexsex.cz/, vytvořím cron který tento soubor zapne v určitý čas pro function.php. Ale pokud vložím <? include „topovani.php“; ?> do function.php, tak můj skript bude automaticky fungovat, než-li čekat na Cron. Nebo se mýlím?
Pro mne je toto nová vysoká zeď, kterou když mi pomůžete zdolat, tak díky vám udělám další krůček k pochopení programování. Opět předem děkuji za případné vysvětlení, jak můžu docílit svého záměru)