我想为自定义帖子类型创建一个自定义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
挂钩,因为它在找到帖子之后,但在向页面输出任何内容之前。