wake-up-neo.com

Warum entfernt WordPress meine Abfragevariable immer noch?

Ich versuche, eine Abfrage-Variable an eine benutzerdefinierte Seitenvorlage mit hübschen Permalinks zu übergeben.

Also im Grunde habe ich eine Seite namens "Alben". Und ich möchte eine Abfragevariable an diese Seite mit dem Namen "Typ" übergeben. Die nicht-hübsche Version wäre also mywebsite.com/index.php?p=97&type=vinyl

die "hübsche" Version wäre mywebsite.com/albums/vinyls

Und die Vorlage muss dann diese Variable (d. H. Vinyls) abrufen

Ich habe den ganzen Tag viel darüber gelesen, kann es aber immer noch nicht zum Laufen bringen. Also hoffte ich, dass eine Art Seele hier mir helfen würde.

Also erstmal füge ich den Rewrite zu meiner functions.php hinzu:

function addrewrite() {
    add_rewrite_rule( '^albums/([^/]+)/?$',
    'index.php?p=97&type=$matches[1]',
    'top' );
}
add_action('init', 'addrewrite');

Dies scheint zu funktionieren, da ich sehen kann, dass es auftaucht, wenn ein var_dump aller Umschreibungen abgerufen wird.

Wenn ich jetzt einen Test mache und mywebsite.com/albums/vinyl in meinen Browser eingebe, entfernt WordPress das letzte bisschen "Vinyl". Ich habe ein paar Stellen gelesen, die das sind, weil ich die Abfrage var auch registrieren muss. Also habe ich das mit dem folgenden Code gemacht:

add_filter('query_vars', 'add_my_var');
function add_my_var($public_query_vars) {
  $public_query_vars[] = 'type';
  return $public_query_vars;
}

Dann habe ich die Permalinks gelöscht, indem ich in den Einstellungen -> Permalinks auf Speichern geklickt habe. und doch streift wordpress meine url immer noch ab.

Was vermisse ich hier?

3
Malibur

Ändern Sie für eine Seite p=97 in page_id=97 oder pagename=albums. p ist für den Beitragstyp post vorgesehen.

Ich schlage auch vor, Ihre Abfrage var zu etwas Einzigartigem zu ändern.

2
Milo