我有一个wordpress安装,我想为任何到达某个页面的子页面的人提供一个静态页面/模板,例如。
https://example.com/products/*
将在Wordpress中提供一个php模板(甚至只是一个静态文件),而无需更改slug,因此如下所示:
https://example.com/products/some-product-slug
https://example.com/products/another-product-slug
都将提供相同的文件,而不更改/重定向URL。
该模板还可以在内部处理404,因此类似于slug的:
https://example.com/products/does-not-exist
仍将提供相同的静态模板。
这可以在wordpress中配置吗?
假设重定向到的页面/模板与帖子类型或层次结构完全无关,因为它基于slug提供外部资源。
最合适的回答,由SO网友:jmcgrory 整理而成
好的,我通过结合几个不同的wordpress功能解决了这个问题:
捕获模板有条件地包含add_filter( \'template_include\', \'...\' );
, 在我的例子中,基于预期URI模式的正则表达式匹配locate_template(\'example-template.php\')
然后解析我的(基本上)静态模板example-template.php
从外部检索资源这必须在内部处理404,因为响应总是假设找不到帖子,我总是设置标题响应(之前get_header
在模板中202
找到资源的位置示例;if ($resource) { @header($_SERVER[\'SERVER_PROTOCOL\'] . \' 202 Accepted\', true, 202); }
有点复杂,但对于我所需要的工作来说,真的没有太多。