Warum funktioniert das Umschreiben von URLs nur mit zwei verschiedenen Methoden?

Für unsere Website habe ich ein paar “Seiten” mit URL-Umschreibung erstellt, mit etwas Code, den ich hier gefunden habe . Es funktionierte, um zwei dieser speziellen Seiten zu haben, aber es funktioniert nicht, wenn ich versuche, ein Drittel hinzuzufügen. Ich musste eine der Abfragen ändern, und ich bin mir nicht sicher warum. Ich habe den folgenden Code eingefügt.

Wenn ich /find/ benutze, kann ich auf die Seite product-search.php und von dort aus weitermachen, aber um diese Arbeit zu erledigen, musste ich eine andere Prüfung durchführen als für meine /sell/ und /quote/ Seiten. Wenn ich daran denke, dass “finden” an anderer Stelle in WordPress verwendet werden kann, habe ich viele andere Begriffe ausprobiert, einschließlich des aktuellen “verschlingen”, was mir den Fehler “Seite nicht gefunden” gibt.

Ich stellte mir vor, dass sie alle auf die gleiche Weise funktionieren würden. Ich habe versucht, die Seiten “Verkaufen” und “Zitat” auf dieselbe Weise zu konvertieren, aber als ich das tat, gaben sie mir Seitenerrors.

Ich bin ratlos, warum ich beide Methoden zur Arbeit bringen kann, aber nur für einige der Seiten. Jede Erklärung oder Hilfe, so dass ich eine Methode verwenden kann, würde sehr geschätzt werden. Dies sind nur die ersten paar dieser benutzerdefinierten Seiten, die wir benötigen, und ich möchte sie konsistent hinzufügen können.

ETA: Ich habe gerade bemerkt, dass die “Find” -Seite, wie sie implementiert ist, auch den Titel “Page not found” trägt. Das ist definitiv nicht ideal.

 add_filter( 'query_vars', 'trade_in_rewrite_add_var' ); function trade_in_rewrite_add_var( $vars ) { $vars[] = 'find'; $vars[] = 'sell'; $vars[] = 'quote'; $vars[] = 'gobble'; return $vars; } function add_trade_in_rewrite_rule() { add_rewrite_tag( '%find%', '([^&]+)' ); add_rewrite_rule( '^find/([^/]*)/?', 'index.php?find=$matches[1]', 'top' ); add_rewrite_tag( '%sell%', '([^&]+)' ); add_rewrite_rule( '^sell/([^/]*)/?', 'index.php?sell=$matches[1]', 'top' ); add_rewrite_tag( '%quote%', '([^&]+)' ); add_rewrite_rule( '^quote/([^/]*)/?', 'index.php?quote=$matches[1]', 'top' ); add_rewrite_tag( '%gobble%', '([^&]+)' ); add_rewrite_rule( '^gobble/([^/]*)/?', 'index.php?gobble=$matches[1]', 'top' ); } add_action('init', 'add_trade_in_rewrite_rule'); add_action( 'template_redirect', 'trade_in_rewrite_catch' ); function trade_in_rewrite_catch() { global $wp_query; if ( $wp_query->query_vars['name'] == "find" ) { include ( get_stylesheet_directory() . '/product-search.php'); exit; } if ( array_key_exists( 'sell', $wp_query->query_vars ) ) { include ( get_stylesheet_directory() . '/sell.php'); exit; } if ( array_key_exists( 'quote', $wp_query->query_vars ) ) { include ( get_stylesheet_directory() . '/quote.php'); exit; } if ( array_key_exists( 'gobble', $wp_query->query_vars ) ) { include ( get_stylesheet_directory() . '/product-search.php'); exit; } } 

Solutions Collecting From Web of "Warum funktioniert das Umschreiben von URLs nur mit zwei verschiedenen Methoden?"