如何以替代格式获取 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;
}
我有一个奇怪的问题。我有一个社交分享插件,它通过社交网络的 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;
}