【发布时间】:2018-09-28 21:05:44
【问题描述】:
有没有办法在 wordpress 上创建“虚拟”slug?
例如: 我创建了一个名为“year”的自定义帖子类型,并且 slug 是 /year/。创建此自定义帖子类型仅用于生成 slugs(/year/)。我在此自定义帖子类型中没有任何帖子。
我想输入 url /year/1988/ 并且 Wordpress 调用 single.php 文件。 如果我今天这样做,wordpress 将返回 404,因为 1988 需要是自定义帖子类型(年份)内的帖子。
我需要一些 .php 代码或 .htaccess 来执行以下操作:如果在 /year/ 之后键入某些内容,它会加载单个文件,因为我无法为每年 1901、1902、1903 ... 和我将获取此信息并进行必要的查询。
【问题讨论】:
-
"我想输入 url /year/1988/ 并且 Wordpress 调用 single.php 文件。" > single.php 究竟要显示什么?
-
目前还不清楚您要做什么。请详细说明,否则我们无法为您提供帮助。
-
@Michael single.php 文件是显示帖子内容的模板。我在 /year/ 之类的 (1988, 1987...) 中没有任何帖子,但我在其他帖子中有年份信息。在 single.php 上,我有一个 sql 查询,它返回 post 并使用诸如 year 之类的信息来过滤它。我想访问 /year/1988/ 并点击 single.php 文件而不是 404 来过滤帖子字段中所有 1988 的帖子
-
我只是觉得您使用 Wordpress 的方式并没有按照应有的方式使用。 single.php 上的自定义 SQL 查询,仅为 slug 创建 CPT - 如果您编写自己的逻辑可能会更好?您是否尝试过添加自定义rewrite endpoint。您的端点是
year,查询变量是ie。1988。您可以使用get_query_var获取查询变量。然后在你的single.php上做一个模板重定向。 -
@Michael 对此感到抱歉,但我正在使用带有 acf 的 wordpress。我只使用 SQL 查询而不是 wp-query 是因为我在 post 中有大约 10 个自定义字段(每个字段都是一个 cpt),并且 wp-query 发出很多请求/查询以仅列出一个信息