get_post_pemalink() 没有 return 正确的值

get_post_pemalink() doesn't return right value

我启用了漂亮的 links,但是当我想通过 get_post_pemalink() 检索自定义 post 类型的 url 时,我得到 'not so pretty' link 除了漂亮 link.

例如:

function send_ad_analytics_mail($ID, $post) {
    $link       =   get_post_permalink($ID);

    $to     = 'example@gmail.com';
    $subject    = 'Post is drafted';
    $message    = 'You can see it on '  . $link;
    $headers    = array(
        'From: example@example.rs'
    );

    wp_mail($to, $subject, $message, $headers);
}
add_action('draft_business', 'send_ad_analytics_mail', 10, 2);

我收到这样一封电子邮件: 你可以在http://example.rs/?post_type=business&p=46934上看到它 但是我想要的是:你可以在http://example.rs/business/new-jobs/

上看到

问题是您选择使用的挂钩:draft_business

我猜你有一个名为 "business" 的 post 类型。

而且,您正在使用的挂钩是 Post Status Transitions 的挂钩 post。

但是,因为您有 draft_business,这是挂钩状态,因为 post 转换为 draft 的状态。一个未发布的 post 将 永远不会 有一个漂亮的永久链接,因此这个钩子永远不会 return 一个漂亮的永久链接,但总是一个 "ugly" 作为你已经展示了。