web-dev-qa-db-fra.com

Les types de poteaux personnalisés hiérarchiques ne fonctionnent pas

Je cherchais quelqu'un avec ce même problème depuis des heures et j'ai donc décidé de poster mon propre fil de discussion.

J'ai un type de message hiérarchique personnalisé appelé information de contact. En utilisant cela, j'ai des pages parent qui ne contiennent aucune information, et des pages enfant qui en contiennent! Dans single-contact-information.php, j'ai défini une règle de redirection qui redirige un parent vers son premier enfant. Ça fonctionne super bien!

Toutefois! Il y a quelques jours à peine, les pages pour enfants ont soudain commencé à me faire sentir 404! Il semble que les pages existent et qu’elles soient bien définies comme enfants des parents, mais les permaliens ne fonctionnent pas. Voici mon permalink-structure, la base:

/% année% /% monthnum% /% jour% /% postname% /

Donc en gros:

mysite.com/contact-information/parentpage/childpage

NE TRAVAILLE PAS, mais

mysite.com/contact-information/childpage

FONCTIONNE, ainsi que

mysite.com/contact-information/parentpage

Voici le code pour créer le type de publication personnalisé, il provient du plug-in d'interface utilisateur Types de publication personnalisés:

register_post_type('contact-information', array(    'label' => 'Contact info','description' => '','public' => true,'show_ui' => true,'show_in_menu' => true,'capability_type' => 'post','hierarchical' => true,'rewrite' => array('slug' => ''),'query_var' => true,'supports' => array('title','revisions','page-attributes',),'labels' => array (
  'name' => 'Contact info',
  'singular_name' => 'Contact information',
  'menu_name' => 'Contact info',
  'add_new' => 'Add Contact information',
  'add_new_item' => 'Add New Contact information',
  'edit' => 'Edit',
  'edit_item' => 'Edit Contact information',
  'new_item' => 'New Contact information',
  'view' => 'View Contact information',
  'view_item' => 'View Contact information',
  'search_items' => 'Search Contact info',
  'not_found' => 'No Contact info Found',
  'not_found_in_trash' => 'No Contact info Found in Trash',
  'parent' => 'Parent Contact information',
),) );

EDIT:

J'ai juste essayé de créer moi-même un CPT dans des fonctions utilisant http://themergency.com/generators/wordpress-custom-post-types/ et le problème persiste, je suis donc presque sûr que cela a à voir avec le permaliens, je n'ai aucune idée de quoi!

4
Jonathan

Essayez ce plugin http://wordpress.org/extend/plugins/custom-post-type-permalinks/ .
J'ai eu beaucoup de problèmes avec les permaliens pour le type personnalisé et les erreurs 404 jusqu'à ce que je commence à utiliser ce plugin.

1
s976

En examinant votre code, vous voudrez peut-être examiner votre clé de tableau de réécriture.

'rewrite' => array('slug' => 'contact-information', 'with_front' => true),

Cela réécrirait votre URL de type poste personnalisé.

Cependant, lorsque vous ajoutez ceci à votre fonction, vous souhaiterez accéder à votre structure de lien permanent et cliquer simplement sur enregistrer à nouveau. Vous n'avez rien à changer, mais en cliquant sur enregistrer, il réécrit votre fichier .htaccess afin que WordPress reconnaisse le nouveau slug.

Si vous développiez ceci pour une diffusion commerciale ou publique, vous pourriez toujours faire:

global $wp_rewrite
$wp_rewrite->flush_rules();

Voici le lien de référence: http://codex.wordpress.org/Function_Reference/flush_rewrite_rules

Et le lien pour les types de publication personnalisés. Un peu plus à mi-chemin de la page se trouve la configuration du slug de réécriture: http://codex.wordpress.org/Function_Reference/register_post_type

Je préfère simplement être un peu plus actif avec mes installations WordPress, donc je sais exactement ce qui se passe.

1
Jonathan

Je me suis battu pour créer une hiérarchie pour les types de publication et les taxonomies personnalisées, puis j'ai trouvé ce code génial. Vous pouvez peut-être l'utiliser pour créer une structure basée sur la date: https://wordpress.stackexchange.com/a/55366/17048

1
Diana