Istnieje kilka wad: Po pierwsze, gdy używasz wp-cron.php jako biblioteki cli, takie jak zmienne $ _SERVER nie są ustawione. Ludzie pokonują to ograniczenie, używając zamiast tego żądania curl do wp-cron.php.
Po drugie, ponieważ sama WP nie jest ładowana z wp-cron.php; jeśli używasz wtyczki SMTP do programu pocztowego, to nie zostanie ona załadowana podczas wywoływania wp-cron. Ponownie użycie wywołania curl zastępuje ten problem. Zwinięcie wydaje się być najczęściej stosowaną metodą.
Jednak; Wolę używać wp-cli po prawidłowym ustawieniu ustawień poczty w Postfiksie i (dla nginx) konfiguracji php-fpm i ustawieniu pliku crontab, takiego jak
*/5 * * * * wp cron event list --skip-plugins --skip-themes --path="/var/www/vhosts/example.com/httpdocs/wp" --fields=hook,next_run_relative --format=csv | awk -F, '$2=="now" {print $1}' | xargs -r wp --path="/var/www/vhosts/example.com/httpdocs/wp" cron event run $1
(Wyświetl listę wszystkich cronów z określonymi polami w formacie csv - hook jest nazwą crona, względny czas następnego uruchomienia. Usuń te, które pokazują „teraz” jako następne uruchomienie (te, które są teraz) za pomocą AWK, przekaż tę listę do xargs do wywoływanie wp cron event run $HOOK
każdego crona.) Korzystanie z wp-cli ładuje WordPressa poprawnie (wybieram pominięcie wtyczek podczas wyświetlania listy cronów, ponieważ błędy kodu i ostrzeżenia php zepsują skrypty, ale nie pomijanie ich podczas uruchamiania crona z xargs, ponieważ cron może wymagać załadowania wtyczek)
Mam nadzieję, że daje to kilka wskazówek, na co zwrócić uwagę.
wget http://YOUR_SITE_URL/wp-cron.php
nie wspominając o tym?doing_wp_cron
Czy jedna jest lepsza od drugiej? Co robi dodatek?doing_wp_cron
, którego nie robi wersja inna niż?