it-swarm.com.de

Der get_permalink eines benutzerdefinierten Beitragstyps gibt eine falsche URL zurück

Momentan ist meine Permalink-Einstellung /paper/%postname%/.

Ich entwickle gerade ein Plugin, daher geschieht Folgendes während der Aktivierung.

Ich füge programmgesteuert einen neuen benutzerdefinierten Post-Typ namens "Meta" hinzu (bei "Init"):

register_post_type( POST_TYPE,
  array(
  'labels' => array('menu_name' => 'meta'),
  'public' => true,
  'rewrite' => array('with_front'=>false,'slug'=>'meta','pages'=>false)
  )
);

Dann habe ich bei der Aktivierung programmatisch einen Meta-Post hinzugefügt und get_permalink() verwendet. Aber ich bekomme folgende URL:

http://localhost/wordpress/paper/faq/

Diese URL führt zur Seite "Nicht gefunden". Die richtige URL sollte lauten:

http://localhost/wordpress/meta/faq/

Auf der Admin-Meta-Post-Bearbeitungsseite ist der angezeigte Permalink der richtige http://localhost/wordpress/meta/faq

Ich habe auch versucht, flush_rewrite_rules(); zu __en, bevor ich get_permalink() anrufe. Aber es hat nicht funktioniert.

Hat jemand eine Idee?

2
lulalala

In welchem ​​Stadium registrieren Sie Ihren Beitragstyp? Wenn es im Admin richtig läuft, denke ich, dass Sie Ihren Beitragstyp zu spät registrieren. Es muss auf init gemacht werden, um zu arbeiten ...

Auch das Entfernen des 'pages'=>false kann das Problem beheben.

1
Joost de Valk