如何以其他格式获取WordPress永久链接?

时间:2015-01-24 00:31:04

标签: php wordpress

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

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

WordPress具有以下永久链接结构:默认,日期和名称,月份和名称,数字和帖子名称。

我希望能够使用get_permalink()并针对社交API(这是我目前所做的)进行检查,并且还能够使用某种功能,例如get_alternate_permalink(' Numeric&#39 ;)这样我就可以检查API并将它们加起来(对于那些已经不再支持301的网络)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是我提出的解决方案。这提供了使用所有标准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;

}