如何仅为单个自定义文章类型设置相对URL?
仅为单个自定义文章类型设置相对URL的解决方案
当然可以实现!你只需要在之前的过滤函数里加一个文章类型判断条件,就能把相对URL的规则精准限制在特定自定义文章类型上,不会影响其他类型(包括你子域名下的事件)。
具体修改步骤
假设你之前用post_type_link过滤器来统一修改自定义文章类型的链接,现在只需要调整函数逻辑,加入目标类型的判断即可:
add_filter('post_type_link', 'make_specific_cpt_relative_url', 10, 2); function make_specific_cpt_relative_url($link, $post) { // 替换成你需要应用相对URL的自定义文章类型slug $target_cpt = 'your_custom_post_type'; // 仅对目标自定义文章类型执行相对URL转换 if ($post->post_type === $target_cpt) { return wp_make_link_relative($link); } // 其他所有文章类型(包括子域名下的事件)保持原始绝对URL return $link; }
关键细节提醒
- 一定要把代码里的
your_custom_post_type替换成你实际需要的自定义文章类型slug(比如注册时设置的'rewrite' => array('slug' => 'portfolio')里的portfolio)。 - 如果你之前用的是其他过滤器(比如
post_link针对普通文章、page_link针对页面),也可以套用同样的逻辑:在函数里判断$post->post_type是否匹配目标类型,再决定是否返回相对URL。 - 这样修改后,只有目标自定义文章类型的链接会转为相对URL,其他类型依然保留绝对URL,子域名下的事件解析问题自然就解决了。
内容的提问来源于stack exchange,提问作者jbwharris
相关产品推荐
相关产品推荐

