Wordpress 获取返回错误类别的类别

Wordpress 获取返回错误类别的类别,wordpress,Wordpress,我订阅了publish\u post WordPress钩子,以便在使用以下命令添加新帖子时发送推送通知 add_action( 'publish_post' , 'onesignal_post_publish_new' , 10 , 2 ); function onesignal_post_publish_new( $ID , $post ) { if ( $post->post_date == $post->post_modified ) { echo "<pr

我订阅了publish\u post WordPress钩子,以便在使用以下命令添加新帖子时发送推送通知

add_action( 'publish_post' , 'onesignal_post_publish_new' , 10 , 2 );
function onesignal_post_publish_new( $ID , $post )
{
  if ( $post->post_date == $post->post_modified ) {
    echo "<pre>";
    $category = get_the_category($post->ID);
    echo $category[0]->cat_name;
    echo "</pre>";

    // push notification code removed for brevity
  }
}

我试图将类别名称包含在通知正文中,但是$category[0]->cat_name始终未分类。我已经验证了$post->ID和$ID的值是正确的,并且category设置为非未分类的值。不确定为什么会发生这种情况。

默认情况下,帖子被归类为未分类。试着改变

echo$category[0]->类别名称

echo$类别[1]->类别名称

或至少var_dump$类别;确认里面都是什么

尽管考虑多个类别可能更好,例如


所以var_dump$类别;返回null,但是当我编辑文章时,选择了正确的类别。关于多个类别,我有一些代码可以将类别复选框转换为单选按钮,因此只能有一个类别。这些代码是如何实现的,只是管理中的一些javascript?理论上这应该是好的,但实际上这可能是问题的一部分。您是否可以添加var\u dump\u以获取\u类别;到single.php或类似文件,或者如果是single var\u dump,则获取\u类别;到functions.php查看是否返回了相应的类别?
if( $post->post_date == $post->post_modified ){
    echo "<pre>";
        // returns array of WP_Term objects, not just one category
        $cat_array = get_the_category( $post->ID );
        if( is_array( $cat_array ) ){
            foreach( $cat_array as $cat ){
                $post_cats .= $cat->cat_name.', ';
            }
        }
        echo substr( $post_cats, 0, -2 ); // Remove ', ' from last one.
    echo "</pre>";

    // push notification code removed for brevity
}