2016-04-14 20 views
0

Ich versuche eine Regel zum Umschreiben einer Seite auf meiner WordPress-Website zu bekommen.WordPress - add_rewrite_rule() funktioniert nicht

Ich habe eine Seite neueste, mit einer benutzerdefinierten Vorlage genannt, und es hat eine ID von .

Im Moment mache ich mehrere dynamische Anfragen basierend auf der String-Abfrage wie folgt:

example.com/latest/?type=instagram

Was würde ich stattdessen mag, ist, :

example.com/latest/instagram/

Folgendes habe ich bisher versucht.

functions.php

function custom_rewrite_tag() { 
    add_rewrite_tag('%type%', '([^&]+)'); 
} 

add_action('init', 'custom_rewrite_tag', 10, 0); 

function custom_rewrite_rule() { 
    add_rewrite_rule('^latest/([^/]*)/([^/]*)/?','index.php?page_id=10&type=$matches[1]', 'top'); 
} 

add_action('init', 'custom_rewrite_rule', 10, 0); 

ich die Führung hier folgende wurde: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

Für das Leben von mir, kann ich nicht bekommen dies funktioniert. Es wird einfach auf meine 404-Seite weitergeleitet oder versucht, einen Beitrag mit dem Titel sort zu finden, der mit dem Typparameter übereinstimmt und mich weiterleitet.

Irgendwelche Hinweise, was ich falsch mache? Ich habe auch die Permalinks aufgefrischt.

+0

Für das, was Sie versuchen, möchten Sie tatsächlich [add_rewrite_endpoint] (https://codex.wordpress.org/Rewrite_API/add_rewrite_endpoint) –

+0

@cale_b Danke - irgendwelche Beispiele mit dieser überhaupt? –

Antwort

0

Es stellt sich heraus, ich habe einen zusätzlichen Pfad in der Rewrite-Regel.

Statt: '^latest/([^/]*)/([^/]*)/?' es hätte sein sollen: '^latest/([^/]*)/?'

Meine neue Arbeitsfunktion in functions.php sich wie folgt:

function custom_rewrite_rule() { 
    add_rewrite_tag('%type%', '([^&]+)'); 
    add_rewrite_rule('^latest/([^/]*)/?', 'index.php?page_id=10&type=$matches[1]', 'top'); 
} 

add_action('init', 'custom_rewrite_rule', 10, 1); 

hoffe, das hilft jemand in Zukunft!

Verwandte Themen