如何以替代格式获取 WordPress 固定链接?

How can I fetch the WordPress Permalink in an alternate format?

我有一个奇怪的问题。我有一个社交分享插件,它通过社交网络的 API 获取社交分享。但是,如果用户更改其 URL 结构,大多数社交网络将不再显示新 URL 的分享,因为分享发生在旧 URL.

是否可以从 WordPress 以不同于用户永久链接设置中设置的格式获取永久链接?这将允许我检查替代格式(旧共享)和当前格式(新共享)。

WordPress 具有以下可用的永久链接结构:默认、日期和名称、月份和名称、数字和 Post 名称。

我希望能够使用 get_permalink() 并根据社交 API 进行检查(这是我目前所做的),并且还能够使用某种功能类似于 get_alternate_permalink('Numeric'),这样我就可以根据 API 检查两者并将它们相加(对于那些还没有完全遵守 301 的网络)。

有什么想法吗?

这是我想出的解决方案。这提供了使用所有标准 WordPress 永久链接格式的永久链接。

function get_alternate_permalink($format) {

    // Setup the Default Permalink Structure
    if($format == 'Default'):
        $domain = get_site_url();
        $id = get_the_ID();
        $url = $domain.'/?p='.$id;

    // Setup the "Day and name" Permalink Structure
    elseif($format == 'Day and name'):
        $domain = get_site_url();
        $date = get_the_date('Y/m/d');
        $slug = basename(get_permalink());
        $url = $domain.'/'.$date.'/'.$slug;

    // Setup the "Month and name" Permalink Structure
    elseif($format == 'Month and name'):
        $domain = get_site_url();
        $date = get_the_date('Y/m');
        $slug = basename(get_permalink());
        $url = $domain.'/'.$date.'/'.$slug;

    // Setup the "Numeric" Permalink Structure
    elseif($format == 'Numeric'):
        $domain = get_site_url();
        $id = get_the_ID();
        $url = $domain.'/archives/'.$id.'/';

    // Setup the "Post name" Permalink Structure
    elseif($format == 'Post Name'):
        $domain = get_site_url();
        $slug = basename(get_permalink());
        $url = $domain.'/'.$slug;

    endif;

    return $url;

}