• 27-09-2019, 23:28:56
    #1
    Herkese merhaba,

    Wordpress'in geliştirme tarafında çok geçmişim yok, öğrenmeye çalışıyorum ancak wp-cron yapısının da içinden çıkamadığım için yardımınıza, fikirlerinize ihtiyacım var arkadaşlar.

    Normalde wp_schedule_event () fonksiyonu ile event schedule edebiliyorum ve bu event wp-cron.php ile otomatik tetikleniyor. Ben spesifik bir url ile istediğim zaman tetiklemek istiyorum.
    Örneğin wp automatic plugin'de istediğime benzer bir kullanım şekli yapmışlar, "use built in cron instead" tikini kaldirinca wp-cron.php çalışsa da artık wp_automatic job'ları bununla beraber otomatik olarak tetiklenmiyor. Sadece wp_automatic'e özel olan url ile tetikleyebiliyorum, bir de sanırım asenkron çalışıyor. Buradaki trik nedir, wp_cron'dan nasıl soyutayabiliyor kendini, ayni mantikta birsey nasıl yapabilirim?

    Acaba external cron olunca wordpress'den çıkıp salt php script'i mi çalıştırmış oluyoruz? Belki de buradaki ayrımı tam yapamıyorum...

    Destekleriniz çok kıymetli, şimdiden çok teşekkürler...
  • 29-09-2019, 00:21:22
    #2
    Cron event oluşturup get ile kontrol ettirip çalıştırabilirsiniz.
  • 01-10-2019, 10:14:31
    #3
    bilimokur adlı üyeden alıntı: mesajı görüntüle
    Cron event oluşturup get ile kontrol ettirip çalıştırabilirsiniz.
    dönüşünüz için çok teşekkür ederim hocam...

    wp_schedule_event ile cron event oluşturdum. ancak şuanda wp_cron ile kendiliğinden periyodik olarak tetikleniyor hocam. sanıyorum öncelikle wp_cron tarafından otomatik tetiklenmesinin önüne geçmem lazım. bunun için de bir filter hook kullanmam mı lazım tam emin olamadım.

    get ile kontrol'den kastınız url'i kontrol edip ona göre işlem yaptırmak mı hocam? biraz daha açabilirseniz çok memnun olurum gerçekten.. eğer öyleyse sanırım bunu da $_SERVER['REQUEST_URI'] ile yapabilirim. ancak wp_cron'dan nasıl hariç bırakabilirim oradan çıkamadım.
  • 01-10-2019, 12:48:20
    #4
    Cron işleminin sadece elle tetiklenmesini istiyorsanız cron oluşturmanıza gerek yok. Basit bir get işlemiyle herhangi bir işlemi tetikleyebilirsiniz. Mesela:

    function islem_yap() {
    if( isset( $_GET[ 'test' ] ) && $_GET[ 'test' ] === '123asd' ) {
    // yapmak istediğiniz işlemler buraya
    }
    }
    
    add_action( 'init', 'islem_yap' );
    Sadece ?test=123asd şeklinde get değeri okununca çalışacak. test ve 123asd kısmını kendinize göre daha karmaşık bir şekilde ayarlayabilirsiniz.
  • 01-10-2019, 13:17:08
    #5
    bilimokur adlı üyeden alıntı: mesajı görüntüle
    Cron işleminin sadece elle tetiklenmesini istiyorsanız cron oluşturmanıza gerek yok. Basit bir get işlemiyle herhangi bir işlemi tetikleyebilirsiniz. Mesela:

    function islem_yap() {
    if( isset( $_GET[ 'test' ] ) && $_GET[ 'test' ] === '123asd' ) {
    // yapmak istediğiniz işlemler buraya
    }
    }
    
    add_action( 'init', 'islem_yap' );
    Sadece ?test=123asd şeklinde get değeri okununca çalışacak. test ve 123asd kısmını kendinize göre daha karmaşık bir şekilde ayarlayabilirsiniz.
    ne kadar teşekkür etsem az, günlerdir wp-includes/cron.php api'sini anlamaya çalışıyordum tabi ki içinden de çıkamadım tam olarak istediğim buydu hocam.. event olmadan tetikleyemez miyiz diye düşünüyordum ama acemlik malum..
    paylaştığınız çok kıymeti, çok sağolun..