2016-07-29 27 views
0

Ich habe eine Seite mit mehreren benutzerdefinierten Regeln neu schreiben wie folgt aus:Wordpress und flush_rules

add_action('init', array($this, 'add_my_rewrite')); 

public function add_my_rewrite() { 

    add_rewrite_tag('%get-continent%','([^&]+)'); 

    global $wp_rewrite; 
    $wp_rewrite->add_rule('something/([^/]*)/?','index.php?page_id=12345&get-continent=$matches[1]','top');   
    $wp_rewrite->flush_rules(false); 
} 

ich es aus alten Codex Beispiel kopiert und auf der Suche hier. Sie alle funktionieren gut, aber sie tun viele und viele Updates auf der DB.

Nach ein wenig Nachforschungen fand ich heraus, dass Codex auch entmutigen, es init zu zünden (anders als in dem Beispiel, das zur Verfügung gestellt wurde). Es ist ein bisschen breit an welchem ​​Haken ich es abfeuern soll. Nach ein wenig Forschung scheint, dass die beste Zeit für die Aktivierung des Plugins ist.

Frage: Ich kann diese Plugins in der Produktseite nicht deaktivieren, ich kann "init" durch etwas anderes es ersetzen. Plugin-Aktivierung (noch nicht sicher, was ist der Haken) aber wird die Rolle funktionieren, wenn ich es auskommentieren? Muss ich es zu einem anderen Zeitpunkt als bei der Aktivierung des Plugins auslösen? Wird es nicht versehentlich überschrieben? Kann ich die add_action einfach auskommentieren, da ich das Plugin nicht aktiviere oder deaktiviere?

Wie immer, danke Jungs.

+0

ja Sie können Flush Rewrite Regeln auskommentieren. Sie können die Rewrite-Regeln auch manuell löschen, dies geschieht, wenn Sie die Permalink-Einstellungen auf der Admin-Seite speichern. – David

Antwort

0

Ich habe die $ wp_rewrite-> flush_rules (false) auskommentiert; Teil hatte ich diese verlassen:

add_action('init', array($this, 'add_my_rewrite'), 10, 0); 

und die Funktion wurde:

public function add_my_rewrite() { 

    add_rewrite_tag('%get-continent%','([^&]+)'); 

    global $wp_rewrite; 
    $wp_rewrite->add_rule('something/([^/]*)/?','index.php?page_id=12345&get-continent=$matches[1]','top');   
} 

Es funktioniert ganz gut, im Idealfall werde ich den Flush auf Aktivierung Feuer haben oder schließlich gehen nur in Einstellungen/Permalinks und drücken Sie Speichern.