我有一个奇怪的问题。我有一个社交分享插件,通过社交网络的API获取社交分享。但是,如果用户更改其URL结构,则大多数社交网络将不再显示新URL的共享,因为共享发生在旧URL上。
是否可以以不同于用户永久链接设置中设置的格式从WordPress获取永久链接?这将允许我检查备用格式(旧共享)和当前格式(新共享)。
WordPress具有以下永久链接结构:默认,日期和名称,月份和名称,数字和帖子名称。
我希望能够使用get_permalink()并针对社交API(这是我目前所做的)进行检查,并且还能够使用某种功能,例如get_alternate_permalink(' Numeric&#39 ;)这样我就可以检查API并将它们加起来(对于那些已经不再支持301的网络)。
有什么想法吗?
答案 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;
}