让动态 URL 在不向 WordPress 管理员添加页面的情况下工作

Getting dynamic URL's to work without adding pages to WordPress admin

我有这个URL:

示例。com/parent/

我在 WordPress 中创建了这个页面,它使用模板页面-parent.php

有没有一种方法可以在不向 WordPress 添加页面的情况下使用此模板动态创建页面,我知道我可以使用查询变量来做到这一点

例如example.com/parent/?q=17

但我想知道我是否可以拥有:

示例。com/parent/child1/

示例。com/parent/child2/

不将它们添加为 'Pages' 并使用父模板。

  1. 在您的主题文件夹中创建一个名为 'page-templates'
  2. 的子文件夹
  3. 将 'parent.php' 代码移动到该文件夹​​中
  4. 将此行添加到 parent.php 的顶部:<?php /* Template Name: Example Template */ ?> 使用您想要使用的任何名称。
  5. 您应该能够 select 在 Wordpress 中的页面编辑器中使用该模板。

感谢@cabrerahector - 我正在寻找 add_rewrite_rule() 我只需要添加这些功能并刷新我的永久链接。

function custom_rewrite_tag() {
  add_rewrite_tag('%child%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);

function custom_rewrite_rule() {
    add_rewrite_rule('^parent/([^/]*)/?','index.php?page_id=207&child=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);

当前您的页面-parent.php 是特定于该页面的模板(由于页面 slug 与文件名匹配)。但是,您可以将现有的 page-parent.php 文件转换为可用于任意数量页面的模板。

  1. 将您的页面-parent.php 文件重命名为模板-parent.php
  2. 将此行添加到模板的顶部-parent.php:(将 "Parent Page" 替换为您希望用于模板名称的任何名称)。
  3. 在 WordPress 管理员中,为 "Parent" 页面和您希望使用它的所有其他子页面选择这个新模板。