Получение динамических URL-адресов для работы без добавления страниц в админку WordPress

У меня есть этот URL:

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.

cabrerahector 12.12.2018 16:33

Спасибо @cabrerahector, это именно то, что я искал.

RustyBadRobot 12.12.2018 17:16

Есть вероятность, что кто-то наткнется на этот вопрос в будущем, поэтому было бы неплохо, если бы вы могли поделиться своим решением (совершенно правильно ответить на ваш собственный вопрос).

cabrerahector 12.12.2018 17:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
431
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

  1. Создайте подпапку в папке вашей темы под названием «шаблоны страниц».
  2. Переместите код parent.php в эту папку.
  3. Добавьте эту строку в начало parent.php: <?php /* Template Name: Example Template */ ?> с любым именем, которое вы хотите использовать.
  4. Вы должны иметь возможность выбрать этот шаблон в редакторе страниц в 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);

В настоящее время ваш page-parent.php является шаблоном, специфичным для этой страницы (из-за того, что слаг страницы соответствует имени файла). Однако вы можете преобразовать существующий файл page-parent.php в шаблон, который можно использовать для любого количества страниц.

  1. Переименуйте файл page-parent.php в template-parent.php
  2. Добавьте эту строку в начало файла template-parent.php: (замените «Parent Page» на любое имя, которое вы хотите использовать для имени шаблона).
  3. В админке WordPress выберите этот новый шаблон для «Родительской» страницы и всех других дочерних страниц, для которых вы хотите его использовать.

Другие вопросы по теме