it-swarm-id.com

Memanggil Fungsi Setelah Pembuatan Posting Baru untuk Jenis Posting Kustom WordPress?

Asumsikan saya membuat jenis posting baru 'product'. Apakah ada cara untuk melakukan fungsi (pengguna dibuat) ketika posting 'product' baru ini telah dibuat?

7
dotty

Dalam functions.php:

function mynewproduct(){
    myfunction();
}
add_action( 'new_product', 'mynewproduct' );

Untuk lebih banyak dan dokumentasi resmi, lihat di sini:

http://codex.wordpress.org/Post_Status_Transitions

5
Tom J Nowell

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);
}
3
MikeSchinkel

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.

2
Jan Fabry