Ich habe ein Problem mit URL-Rewriting für ein Thema, das ich mache, das ist im Grunde ein Galerie-Thema basierend auf dem Thema root. So funktioniert die Websitenavigation:
domain.com
auf die übergeordneten Seiten) Aktuelle URL – domain.com
domain.com/landscapes
domain.com/landscapes/image-title/#id
Ich möchte den Bildtitel von der URL der domain.com/landscapes/gallery/#id
entfernen und durch eine Galerie ersetzen, sodass die URL domain.com/landscapes/gallery/#id
lautet
Meine content-image.php verwendet wp_get_attachment_image_src()
, um die Image-URLs zu erhalten. Bei deaktivierten Permalinks bekomme ich eine Image URL wie domain.com/index.php?attachment_id=205
Beim Überprüfen der hübschen URL mit dem Rewrite Rules Inspector-Plugin erhält diese URL ( domain.com/landscapes/image-title/#id
) zwei Übereinstimmungen, die wie folgt aussehen:
REGEL 1: (.?.+?)(/[0-9]+)?/?$
Schreibe 1: index.php?pagename=$matches[1]&page=$matches[2]
REGEL 2: [^/]+/([^/]+)/?$
Schreibe 2: index.php?attachment=$matches[1]
Von dem, was ich verstehe, ist die zweite Regel diejenige, die in diesem Fall angewendet wird, aber ich habe keine Ahnung, wozu ich es ändern soll. Irgendeine Idee, wie man das macht?
Ok, also habe ich die Antwort gefunden. Ich habe den Code gemäß https://wordpress.stackexchange.com/a/56426/37472 verwendet und alle Referenzen von 'series'
in 'gallery'
geändert.
Dadurch wurde die erforderliche Rewriter-Regel hinzugefügt, um einen Link wie domain.com/landscapes/gallery/123/
zu index.php?attachment_id=123
zu analysieren.
Meine Annahme war, dass WordPress den Default Permalink, der von get_permalink()
im domain.com/landscapes/gallery/123/
Format generiert wird, get_permalink()
domain.com/landscapes/gallery/123/
. Es tut nicht. Ich habe jedoch eine einfache Problemumgehung in meinem Galerieskript verwendet, um die Ankerverknüpfungen im erforderlichen Format zu generieren, das für die Homepage, Unterseiten und übergeordnete / andere Seiten unterschiedlich ist. Das Skript verwendet Isotope und Lazy Load, um die Galerien http://pastie.org/8294032 zu laden.
Für das unterschiedliche Format der Seiten habe ich die function my_rewrite_rules_array( $rules )
folgendermaßen geändert:
function my_rewrite_rules_array( $rules ) { $my_rules = array(); $my_rules['gallery/(\d+)/?$'] = 'index.php?attachment_id=$matches[1]'; $my_rules['(\w+)/gallery/(\d+)/?$'] = 'index.php?attachment_id=$matches[2]'; $my_rules['(\w+)/(\w+)/gallery/(\d+)/?$'] = 'index.php?attachment_id=$matches[3]'; return $my_rules + $rules; }