WordPress和PHP动态子页面,用于Vcard下载



我想为自定义帖子类型创建一个自定义vcard URL,目前不确定这是否可能和/或最好的方法。

我希望URL为:domain.co.uk/our team/daniel vickers/vcard

然而,当我使用WordPress时,访问这样的页面会迫使404页面出现,是否可以按照这个模板URL结构将其创建为一个纯PHP页面,因为会有很多团队成员?

还是最好编写一个函数来识别vcard URL,生成文件,下载并重定向回原始团队成员页面?

任何指向任何资源的指针或对最佳路线的全面解释都是理想的,谢谢。

如果您能接受URL为domain.co.uk/our-team/daniel-vickers/?vcard我有个主意。

假设您有一个名为team_member的自定义帖子类型,它的URL是/我们的团队/<帖子名称>然后在该自定义帖子类型中添加一个名为vcard的自定义字段,然后您可以在主题的functions.php:中添加类似的内容

function tpl_redir_hook(){
if(get_post_type() === 'team_member' && isset($_GET['vcard'])){
header('Content-Type: text/vcard', true);
header('Content-Disposition: attachment');
exit(get_field('vcard'));   
}
}
add_action('template_redirect', 'tpl_redir_hook');

然后,domain.co.uk/我们的团队/daniel vickers/将显示一个正常页面,domain.co.uk/our-team/daniel-vickers/?vcard将触发daniel-vickers.vcf的下载,由于这是一个下载,默认的浏览器行为意味着当您停留在domain.co.uk/our team/daniel vickers/URL上时,无需重定向回。

我使用template_redirect挂钩,因为它在找到帖子之后,但在向页面输出任何内容之前。

最新更新