Bir yayın güncellendiğinde, ateşlenen bazı kancalar vardır:
'pre_post_update', yazı güncellenmeden hemen önce yapılan bir işlemdir , iletilen bağımsız değişken 2'dir: $post_IDve $databu, yazı tablosunun diğer tüm veritabanı sütunlarının bir dizisidir
'transition_post_status'güncellemede tetiklenen bir kancadır ve 3 argüman iletir: $ new_post_status $old_post_statusve $post(object).
- Daha sonra, ateşlenen diğer 2 geçiş kancası vardır, ancak dinamik olarak adlandırılırlar, ateşlenen etkili eylemin eski ve yeni posta durumuna bağlı olduğu anlamına gelir.
"{$old_status}_to_{$new_status}"ve "{$new_status}_{$post->post_type}". İlk olarak sadece post nesnesini argüman olarak, ikincisi post id ve post nesnesini iletin. Belgeleri burada bulabilirsiniz .
'edit_post'2 bağımsız değişkeni ileten: $post_IDve $post(nesne)
'post_updated'bu geçiş 3 parametreler: $post_ID, $post_after(güncellemeden sonra sonrası nesne), $post_before(post nesne güncellemeden önce)
- Başka dinamik kanca:
"save_post_{$post->post_type}"Yayın türüne bağlıdır, örneğin standart mesajların içindir 'save_post_post've sayfalar için olan 'save_post_page'bu kanca geçerler 3 argümanlar,: $post_ID, $post(nesne) ve $updateki, bir güncelleme gerçekleştirdiğinizde doğrudur (doğru veya yanlış) bir boolean aslında bir kanca ilk kez kaydedildiğinde bu kanca ateşlenir.
- '
save_post' hem güncelleme hem de ilk kaydetme sırasında tetiklenir ve önceki kancanın aynı 3 argümanını iletir.
- '
save_post_{$post_type}' hem güncelleme hem de ilk kaydetme sırasında tetiklenir ve önceki kancadaki ilk 2 argümanı geçirir.
- Sonunda '
wp_insert_post' , hem güncelleme hem de ilk kaydetme sırasında işlenir ve önceki 2 kancanın aynı 3 argümanını iletir.
Bunlar kanca sonrası her güncellendiğinde ateş edilir, arka uç ve güncellenmiş zaman "manuel" seçeneğini kullanarak aracılığıyla yönetici sayfaları üzerinden hem wp_update_postveya wp_insert_postfonksiyonlar.
Gönderi yönetici sayfaları kullanılarak güncellendiğinde, ek kancalar açılır, bir örnek 'update_post_redirect'veya 'post_updated_messages'. ( Kullanım örnekleri için buna ve bu WPSE yanıtlarına bakın).
Bazı kanca argümanlarından yararlanmak istiyorsanız, bu ilk değil, açıkça add_actionçağrıda bildirmeniz gerektiğini unutmayın .
Örneğin, kullanmak istediğiniz takdirde '$update'argüman (3 olduğunu) ait 'save_post'kanca eklemek gerekir 3olarak $accepted_argsüzerinde param add_action( docs bakınız ):
// if you don't add 3 as as 4th argument, this will not work as expected
add_action( 'save_post', 'my_save_post_function', 10, 3 );
function my_save_post_function( $post_ID, $post, $update ) {
$msg = 'Is this un update? ';
$msg .= $update ? 'Yes.' : 'No.';
wp_die( $msg );
}
Zamanlama ile ilgili son not : eylem tetiklenmeden önceadd_action çağrıldığından emin olmalısınız , aksi takdirde hiçbir şey yapmaz.
Örneğin bu kod:
wp_update_post( $post );
add_action( 'save_post', 'my_function', 10, 3 );
hiçbir şey yapmaz, çünkü kanca ateşlendikten sonra eylem eklenir. İşte bunu tanımak basit, gerçek dünyada her zaman böyle değil.
save_post, bu bir yazım hatası mı, yoksa orijinal kodunuzda mı? ayrıca, geliştirme sırasında hata ayıklamayı etkinleştirin .