假设我创建了一个新的帖子类型\'product\'
. 当这个新的\'product\'
是否已创建帖子?
为WordPress自定义帖子类型创建新帖子后调用函数?
3 个回复
SO网友:Tom J Nowell
在功能上。php:
function mynewproduct(){
myfunction();
}
add_action( \'new_product\', \'mynewproduct\' );
有关更多信息和官方文档,请参阅此处:SO网友:MikeSchinkel
你好@dotty:
看一下wp_insert_post()
文件中的函数/wp-includes/post.php
(在WordPress 3.0.1的第2148至2392行。请注意,WordPress将此功能用于添加和更新帖子。)
最后,它有以下代码。从该代码中,您可以识别调用wp_transition_post_status()
(稍后会有更多内容)我们有动作挂钩edit_post
, post_updated
, save_post
和wp_insert_post
(坦率地说,我不知道为什么我们有后两个而不是一个。)您可以使用任何适合您需要的:
<?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;
正如Jan Fabry所提到的,在wp_transition_post_status()
(第2713至2717页,共/wp-includes/post.php
在WordPress 3.0.1中。)注:共有三个;酌情使用:<?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);
}
SO网友:Jan Fabry
这个wp_transition_post_status
将调用函数,这将触发操作"${new_status}_$post->post_type"
, 所以如果product
移动到publish
州,行动publish_product
将被触发。
结束