cron – wykonaj funkcję we wtyczce wordpress za pomocą crontab
WordPress Development Stack Exchange to strona z pytaniami i odpowiedziami dla programistów i administratorów WordPress. Rejestracja zajmuje tylko minutę.
Zarejestruj się, aby dołączyć do tej społeczności
Każdy może zadać pytanie
Każdy może odpowiedzieć
Najlepsze odpowiedzi są głosowane i wznoszą się na szczyt
Spytał
Oglądane2k razy
Chcę więc uruchomić funkcję na mojej wtyczce z crontab. Na przykład chcę uruchamiać go codziennie o 1:10
function my_cronjob_action () {
//this function is in my plugin
// code to execute on cron run
syslog(LOG_DEBUG, 'executed by unix cron');
} add_action('my_cronjob_action', 'my_cronjob_action');
Wyłączyłem wp-cron, dodając define( 'DISABLE_WP_CRON', true );
do wp-config.php jaki jest następny krok, aby funkcja mogła zostać wykonana z crontab?
Dziękuję wcześniej.
1
Znalazłem tutaj świetne rozwiązanie: Uruchom niestandardową wtyczkę wordpress z linuksowym cronem
Moja ścieżka to /usr/bin/wp, więc sprawdź swój serwer.
Możesz po prostu dodać swoją funkcję do pliku, a używając skryptu wp bin nie musisz dodawać niczego do pliku php, aby korzystać z funkcji WordPress.
Udało mi się uruchomić to z SSH/Putty, ale obecnie nie mogę go uruchomić jako zadanie cron. Zaktualizuję, jeśli wymyślę, jak to zrobić.
Rozwiązanie, które tutaj wymyśliłem, wygląda następująco:
- Zainstalowałem WP-CLI i skorzystałem z polecenia eval-file.
- Przekonwertowałem moją wtyczkę wordpress na samodzielny skrypt.
- W samodzielnym skrypcie zainicjowałem wordpress, więc nie musiałem modyfikować większości z nich. Właśnie usunąłem haki aktywacyjne i inny kod specyficzny dla wtyczki wordpress.
- Moja ostateczna linia crona wyglądała tak: /usr/local/bin/wp –path=”/var/www/vhosts/path/to/site/” eval-file /var/www/vhosts/path/to/site /i/plik/lokalizacja/standalone-cron-send-email.php
- Ze względów bezpieczeństwa dodałem to na początku skryptu, aby intruzi z zewnątrz nie mogli uruchomić skryptu. Tylko WP-CLI może uruchomić skrypt, w przeciwnym razie wiadomość przeznaczona do uruchomienia z wiersza poleceń zostanie zwrócona do przeglądarki.
if( php_sapi_name() !== 'cli’ ) { die(„Uruchamiany z wiersza poleceń”); }
domyślny