Versionierter benutzerdefinierter Post-Typ (nicht identisch mit Revisionen)

Ich möchte einen speziellen benutzerdefinierten Beitragstyp mit einem URL-Format wie folgt erstellen

site_root / post_slug [/ post_name [/ version_nummer]]

site_root / post_slug:
zeigt auf eine Liste von Posts, zB post_name

site_root / post_slug / post_name:
verweist auf die neueste Version (nicht permalink)

site_root / post_slug / post_name / Versionsnummer:
zeigt auf die spezifische Versionsnummer

Im Admin-Menü hätte es

post_name1
– Version 1
– Version 2
– etc.
post_name2
– Version 1
– Version 2
– etc.

Beispiel-URLs

zB für Lizenzen, mit dem gpl als Lizenz alle 3 Versionen:
site_root / license / gpl / 1.0
site_root / license / gpl / 2.0
site_root / Lizenz / gpl / 3.0

dh für Software Informationen / Download-Seite für Python2 (2.5, 2.6 und 2.7):
site_root / downloads / python2 / 2.5
site_root / downloads / python2 / 2.6
site_root / downloads / python2 / 2.7
site_root / software / python2 / 2.5
site_root / software / python2 / 2.6
site_root / software / python2 / 2.7

In diesem Beispiel würde site_root / license / gpl auf site_root / license / gpl / 3.0 und site_root / {software | downloads} / python auf site_root / {software | downloads} /python/2.7 site_root / software / python2 / 2.7 verweisen

Ich konnte etwas davon finden, weil alle meine Suchen Ergebnisse zum Umgang mit Revisionen liefern.

Beispiel von dem, was ich will, sehe pypi

https://pypi.python.org/pypi/numpy/
Zeigt auf die news-Version
https://pypi.python.org/pypi/numpy/1.13.0
Punkte auf spezifische Version 1.13.0 (Aktuell neuste)
https://pypi.python.org/pypi/numpy/1.11.0
Punkte auf spezifische Version 1.11.0 (Ältere Version)

Ich arbeite derzeit mit meinem eigenen Plugin, das den post-type erstellt, indem ich register_post_type anrufe. Ich benutze es bereits, um ein benutzerdefiniertes Post-Typ-Plugin zu erstellen. Was ich nicht zu verwalten weiß, ist die Anzeige mehrerer Versionen wie ich möchte für mein aktuelles Projekt.

Update # 1

Nach einigen weiteren Untersuchungen habe ich Informationen zu Endpunkten gefunden, die ähnlich aussehen, wie ich es möchte, aber nicht genau die gleichen.

Endpoints registrieren etwas wie & version = {version_string} um von post_slug / ‘version’ / version_string neu geschrieben zu werden, dh mit diesem würde es die Struktur site_root / post_slug [/ post_name [/ ‘version’ / version_number]] erzeugen. Siehe https://codex.wordpress.org/Rewrite_API/add_rewrite_endpoint und https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/ . Weiter, basierend auf dem zweiten Link, ergibt dies

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

Wird in WP_Rewrite :: generate_rewrite_rules () ausgeführt.

Dies würde bedeuten, dass ich die Umschreibregeln für meinen benutzerdefinierten Post-Typ so ändern muss, dass er etwas in der Richtung von

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

Ich habe auch den Haken https://codex.wordpress.org/Plugin_API/Filter_Reference/$permastruct_rewrite_rules gefunden , der so aussieht, als ob ich die Rewrite-Regeln für meinen Post-Typ ändern könnte, aber die Dokumentation erklärt nicht, wie dies funktioniert Hook funktioniert auch nicht, ich kann die genaue Struktur der Regel finden, die ich benötigen würde.

Solutions Collecting From Web of "Versionierter benutzerdefinierter Post-Typ (nicht identisch mit Revisionen)"