【问题标题】:Getting dynamic URL's to work without adding pages to WordPress admin在不向 WordPress 管理员添加页面的情况下获取动态 URL
【发布时间】:2018-12-12 15:29:23
【问题描述】:

我有这个网址:

example.com/parent/

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

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

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

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

example.com/parent/child1/

example.com/parent/child2/

不添加这些为'Pages' 并使用父模板。

【问题讨论】:

  • 也许这会有所帮助:add_rewrite_rule | WordPress Codex.
  • 谢谢@cabrerahector,这正是我想要的。
  • 将来有人可能会偶然发现这个问题,所以如果你能分享你想出的解决方案会很好(回答你自己的问题完全有效)。跨度>

标签: php wordpress .htaccess templates url-redirection


【解决方案1】:

感谢@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);

【讨论】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-17
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多