Asumsikan saya membuat jenis posting baru 'product'
. Apakah ada cara untuk melakukan fungsi (pengguna dibuat) ketika posting 'product'
baru ini telah dibuat?
Dalam functions.php:
function mynewproduct(){
myfunction();
}
add_action( 'new_product', 'mynewproduct' );
Untuk lebih banyak dan dokumentasi resmi, lihat di sini:
Hai @dotty:
Lihatlah akhir fungsi wp_insert_post()
dalam file /wp-includes/post.php
(pada baris 2148 hingga 2392 di WordPress 3.0.1. Perhatikan bahwa WordPress menggunakan fungsi ini baik untuk menambah dan memperbarui posting. )
Pada akhirnya ia memiliki kode berikut. Dari kode ini Anda dapat mengidentifikasi panggilan ke wp_transition_post_status()
(lebih banyak tentang itu dalam sedikit) dan kami memiliki kait tindakan edit_post
, post_updated
, save_post
dan wp_insert_post
( terus terang saya tidak tahu mengapa kami memiliki dua yang terakhir alih-alih hanya dengan dua satu. ) Anda dapat menggunakan salah satu dari yang sesuai dengan kebutuhan Anda:
<?php
wp_transition_post_status($data['post_status'], $previous_status, $post);
if ( $update ) {
do_action('edit_post', $post_ID, $post);
$post_after = get_post($post_ID);
do_action( 'post_updated', $post_ID, $post_after, $post_before);
}
do_action('save_post', $post_ID, $post);
do_action('wp_insert_post', $post_ID, $post);
return $post_ID;
Dan seperti @Jan Fabry disebutkan ada kait tindakan yang ditemukan di wp_transition_post_status()
(pada 2713 hingga 2717 dari /wp-includes/post.php
di WordPress 3.0.1.) Perhatikan ada tiga di antaranya; gunakan sesuai kebutuhan:
<?php
function wp_transition_post_status($new_status, $old_status, $post) {
do_action('transition_post_status', $new_status, $old_status, $post);
do_action("${old_status}_to_$new_status", $post);
do_action("${new_status}_$post->post_type", $post->ID, $post);
}
Fungsi wp_transition_post_status
akan dipanggil, dan ini akan memicu aksi "${new_status}_$post->post_type"
, jadi jika product
pindah ke status publish
, tindakan publish_product
akan dipicu.