Intereting Posts
Простая функция JS Не работает Как вы создаете архив для настраиваемого типа сообщений из плагина? Использование AJAX для динамических страниц настроек Вставьте пользовательский контент перед заголовком виджета / после тега открытия виджета update_user_meta не работает с AJAX Сортировка медиабиблиотеки по имени автора Как манипулировать всплывающим окном «добавить медиа» Создать короткий код в Child Theme? Ограничить выбор тега в предопределенный список Домашняя ссылка на главной странице моего wordpress не показывает мои сообщения в блоге Что-то странное с ajax Могу ли я заставить WordPress использовать <i> вместо <em>? Как переопределить функциональность Woocommerce в разделе «Отчеты»? Могу ли я использовать init hook для использования API? Невозможно получить почтовый идентификатор на странице, которая представляет собой настраиваемый архив типа сообщения

Тип настраиваемого пользовательского сообщения (не совпадает с версиями)

Я хочу создать специальный пользовательский тип сообщения с форматом url следующим образом

site_root / post_slug [/ POST_NAME [/ номер_версии]]

site_root / post_slug:
указывает на список сообщений, то есть post_name

site_root / post_slug / POST_NAME:
указывает на последнюю версию (не permalink)

site_root / post_slug / POST_NAME / номер_версии:
указывает на конкретный номер версии

В меню администратора он будет иметь

post_name1
– Версия 1
– Версия 2
– и т.д.
post_name2
– Версия 1
– Версия 2
– и т.д.

образцы URL-адресов

т.е. для лицензий, с gpl в качестве лицензии все 3 версии:
site_root / лицензии / GPL / 1,0
site_root / лицензии / GPL / 2,0
site_root / лицензии / GPL / 3,0

т.е. для информации о программном обеспечении / странице загрузки для python2 (2.5, 2.6 и 2.7):
site_root / загрузки / python2 / 2.5
site_root / загрузки / python2 / 2.6
site_root / загрузки / python2 / 2,7
site_root / программное обеспечение / python2 / 2.5
site_root / программное обеспечение / python2 / 2,6
site_root / Программное обеспечение / python2 / 2,7

в этом примере site_root / license / gpl будет указывать на site_root / license / gpl / 3.0 и site_root / {software | downloads} / python будет указывать на site_root / {программное обеспечение | downloads} /python/2.7 site_root / software / python2 / 2.7

Я смог найти что-нибудь из этого, потому что все мои поиски заканчиваются возвратом результатов обработки переделок.

Пример того, что я хочу видеть pypi

https://pypi.python.org/pypi/numpy/
Вопросы к новостной версии
https://pypi.python.org/pypi/numpy/1.13.0
Указывает на конкретную версию 1.13.0 (в настоящее время новее)
https://pypi.python.org/pypi/numpy/1.11.0
Указывает на конкретную версию 1.11.0 (более старая версия)

В настоящее время я работаю с моим собственным плагином, создавая пост-тип, вызывая register_post_type, я все готов использовать это для создания настраиваемого плагина типа публикации, что я не знаю, как управлять, это отображать несколько версий, как я хочу для моего текущего проекта.

Обновление # 1

После некоторых дальнейших исследований я нашел информацию о конечных точках, которая похожа на то, что я хочу, но не совсем то же самое.

Конечные точки регистрируют что-то вроде & version = {version_string}, которое должно быть переписано из post_slug / 'version' / version_string, т. Е. С помощью этого оно создало бы структуру site_root / post_slug [/ post_name [/ 'version' / version_number]]. См. Https://codex.wordpress.org/Rewrite_API/add_rewrite_endpoint и https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/ . В дальнейшем, основываясь на второй ссылке, это приводит к

$rewrite[ "([^/]+)/{$query_var}(/(.*))?/?$" ] = "index.php?name=$1&{$query_var}=$3" 

выполняется в WP_Rewrite :: generate_rewrite_rules ().

Это предполагает, что мне нужно изменить правила перезаписи для моего настраиваемого типа сообщений, чтобы дозировать что-то в соответствии с

 $rewrite[ "{$custom_post_slug}/([^/]+)/(/({$version_pattern})?/?$" ] = "index.php?name=$1&{$query_var}=$3" 

Я также нашел hook https://codex.wordpress.org/Plugin_API/Filter_Reference/$permastruct_rewrite_rules , который, как и он, позволит мне изменить правила перезаписи для моего типа сообщения, однако документация не объясняет, как это и я не могу найти точную структуру правила, которое я бы требовал.