您当前使用的挂钩是publish_<post type>
这意味着<post type>
part是动态的,值是post类型名称/slug。
所以对于其他类型的帖子,比如page
和(名为的自定义帖子类型)my_cpt
, 您只需更改;“发布”;(或<post type>
部件)在挂钩名称中page
, my_cpt
或者不管帖子类型名称/slug是什么:
add_action( \'publish_post\', \'notifyauthor\' ); // for the default \'post\' post type
add_action( \'publish_page\', \'notifyauthor\' ); // for the default \'page\' post type
add_action( \'publish_my_cpt\', \'notifyauthor\' ); // for a CPT with the name/slug my_cpt
或者如果你想采取行动(
notifyauthor()
) 要在发布任何帖子(常规帖子和页面,以及自定义帖子类型)时调用,则需要使用
transition_post_status()
hook 而不是
publish_<post type>
钩
下面是一个基于this on the WordPress Developer Resources site:
function wpdocs_run_on_publish_only( $new_status, $old_status, $post ) {
// Yes, I said "any posts", but you might better off specify a list of post
// types instead. Or you could do the check in your notifyauthor() function
// instead.
$post_types = array( \'post\', \'page\', \'my_cpt\', \'foo_bar\', \'etc\' );
if ( ( \'publish\' === $new_status && \'publish\' !== $old_status ) &&
in_array( $post->post_type, $post_types )
) {
notifyauthor( $post->ID );
}
}
add_action( \'transition_post_status\', \'wpdocs_run_on_publish_only\', 10, 3 );
PS:如果您使用上述代码/挂钩,那么您应该删除
add_action(\'publish_post\', \'notifyauthor\');
从当前代码。