web-dev-qa-db-fra.com

Get_permalink du type de message personnalisé renvoie une URL incorrecte

Actuellement, mon paramètre de permalien est /paper/%postname%/.

Je développe un plugin, donc ce qui suit est fait pendant l'activation.

J'ajoute par programme un nouveau type de post personnalisé appelé 'méta', comme ceci (à 'init'):

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

Ensuite, lors de l'activation, j'ai programmé une méta-publication et j'utilise get_permalink(). Mais je reçois l'URL suivante:

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

Cette URL mène à la page "introuvable". L'URL correcte devrait être:

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

Dans la page d'édition de la méta-publication de l'administrateur, le permalien affiché est le http://localhost/wordpress/meta/faq correct.

J'ai également essayé de flush_rewrite_rules(); avant d'appeler get_permalink(). Mais ça n'a pas marché.

Est-ce que quelqu'un a une idée?

2
lulalala

A quel stade enregistrez-vous votre type de message? Si cela se passe bien dans l'administration, je pense que vous enregistrez peut-être votre type de publication trop tard. Cela doit être fait sur init pour fonctionner ...

En outre, la suppression du 'pages'=>false pourrait simplement résoudre le problème.

1
Joost de Valk