web-dev-qa-db-fra.com

Le type de message personnalisé "aperçu" ne fonctionne pas

Je rencontre un problème avec le type de message personnalisé "brouillon", qui redirige vers la page d'accueil du site si j'ai de jolis permaliens activés.

Par exemple, je crée un nouveau "Projet", enregistre en tant que brouillon et clique sur Aperçu. La fenêtre d'aperçu s'ouvre sur la page d'accueil du site.

Cela fonctionne correctement si je règle les permaliens du site sur 'default'.

C'est mon code qui enregistre le type de message. Selon la note de la section 'public_queryable' de l'entrée de codex register_post_type , j'ai testé différents paramètres pour 'query_var' (true/false/'projects'), mais aucun ne faisait la différence. J'ai également essayé de modifier l'argument de réécriture et/ou de le supprimer complètement. Ne pas aller. Merci pour toute aide!

UPDATE: J'ai confirmé que cela fonctionnait auparavant et a rompu avec une mise à jour récente. J'imagine que c'était la mise à jour à la version 4.2.2 mentionnée dans la section 'public_queryable' de la page de codex register_post_type, mais personne ne s'en est aperçu jusqu'à présent.

// Project
      $labels = array(
        'name'                => 'Projects',
        'singular_name'       => 'Project',
        'menu_name'           => 'Projects',
        'parent_item_colon'   => 'Parent Project:',
        'all_items'           => 'All Projects',
        'view_item'           => 'View Project',
        'add_new_item'        => 'Add New Project',
        'add_new'             => 'Add New',
        'edit_item'           => 'Edit Project',
        'update_item'         => 'Update Project',
        'search_items'        => 'Search Project',
        'not_found'           => 'Not found',
        'not_found_in_trash'  => 'Not found in Trash',
      );
       $rewrite = array(
        'slug'                       => 'projects',
        'with_front'                 => true,
        'hierarchical'               => true,
      );
      $args = array(
        'label'               => 'Project',
        'description'         => 'Individual Projects',
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'revisions', 'author'),
        'taxonomies'          => array( 'project_categories', 'project_sponsors' ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 20,
        'menu_icon'           => 'dashicons-clipboard',
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
        'rewrite'                    => $rewrite,
       'query_var'              => 'projects',

      );
      register_post_type( 'projects', $args );
1
Michelle

Le code que vous avez fourni fonctionne comme prévu sur une nouvelle installation de WordPress (4.3.1 dans ce cas). Les idées ci-dessous ne doivent pas être considérées comme une réponse, mais plutôt comme une liste de contrôle pour aider à résoudre le problème en limitant la portée du problème:

  1. Vous devez être connecté en tant qu'utilisateur autorisé à afficher les brouillons pour éviter une 404 ou une redirection.

  2. Essayez de désactiver vos plugins un par un pour voir si l'un des plugins a déjà établi une règle de réécriture en conflit.

  3. Vérifiez la configuration de votre serveur Web (telle que .htaccess sur Apache) pour voir s’il existe des règles de redirection en place.

  4. Enfin, envisagez de passer temporairement à un autre thème et d’ajouter votre type de publication personnalisé pour voir si vous obtenez les mêmes résultats. Si un nouveau thème résout le problème avec votre code, peut-être que les conflits existent dans votre thème actuel.

1
dswebsme