我有以下功能,当我有新帖子时,我会获取ID来获取帖子的标题,然后使用它将其作为通知发送(使用Firebase Cloud Messaging(。但这些只适用于POST
.
function send_message_on_publish($ID, $post) {
include('inc/functions.php');
$title = 'New post!';
$msgtext = $post->post_title;
send_push($msgtext, $title);
}
add_action( 'publish_post', 'send_message_on_publish', 10, 2 );
但是我需要对自定义帖子类型(post_type=tribe_events
(使用相同的函数,如何获取post_type的ID和标题。
你使用的是publish_post
钩子,只有当post
的帖子状态更改为publish
时,它才真正出现。
为了具体回答您的问题,WordPress有一个动态钩子用于{$new_status}_{$post->post_type}
。只需添加动作钩子:
add_action( 'publish_tribe_events', 'send_message_on_publish', 10, 2 );
它也应该针对您的tribe_events
帖子类型触发。自定义帖子类型仍然具有ID
和post_title
记录,该记录可与标准post
相同地访问。
function send_message_on_publish($ID, $post) {
include('inc/functions.php');
$title = 'New post!';
$msgtext = $post->post_title;
send_push($msgtext, $title);
}
add_action( 'publish_post', 'send_message_on_publish', 10, 2 );
add_action( 'publish_tribe_events', 'send_message_on_publish', 10, 2 );
综上所述,您可能需要考虑改用发布状态转换,因为publish_{$post_type}
钩子将在post_type
首次发布和更新时运行。