Vista previa de tipo de entrada personalizada no funciona

29 sept 2015, 18:32:23
Vistas: 4.31K
Votos: 1

Tengo un problema con la vista previa de borradores en un custom post type que redirige a la página de inicio cuando tengo los permalinks activados.

Por ejemplo, creo un nuevo "Proyecto", lo guardo como borrador y hago clic en vista previa. La ventana de vista previa se abre en la página de inicio del sitio.

Funciona correctamente si configuro los permalinks del sitio como 'default'.

Este es mi código para registrar el tipo de entrada. Según la nota en la sección 'publicly_queryable' en la entrada del codex sobre register_post_type, he probado diferentes configuraciones para 'query_var' (true / false / 'projects') pero ninguna hizo diferencia. También intenté editar el argumento rewrite o eliminarlo por completo. Sin éxito. ¡Gracias por cualquier ayuda!

ACTUALIZACIÓN: He confirmado que esto solía funcionar y dejó de hacerlo con una actualización reciente. Supongo que fue la actualización a 4.2.2 mencionada en la sección 'publicly_queryable' de la página del codex de register_post_type, pero nadie se dio cuenta hasta ahora.

// Proyecto
      $labels = array(
        'name'                => 'Proyectos',
        'singular_name'       => 'Proyecto',
        'menu_name'           => 'Proyectos',
        'parent_item_colon'   => 'Proyecto padre:',
        'all_items'           => 'Todos los proyectos',
        'view_item'           => 'Ver proyecto',
        'add_new_item'        => 'Añadir nuevo proyecto',
        'add_new'             => 'Añadir nuevo',
        'edit_item'           => 'Editar proyecto',
        'update_item'         => 'Actualizar proyecto',
        'search_items'        => 'Buscar proyecto',
        'not_found'           => 'No encontrado',
        'not_found_in_trash'  => 'No encontrado en la papelera',
      );
       $rewrite = array(
        'slug'                       => 'projects',
        'with_front'                 => true,
        'hierarchical'               => true,
      );
      $args = array(
        'label'               => 'Proyecto',
        'description'         => 'Proyectos individuales',
        '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 );
3
Comentarios

¿Has guardado tus enlaces permanentes desde que creaste tu tipo de publicación? ¿Puedes verlo en vivo en el front-end sin problemas?

Howdy_McGee Howdy_McGee
29 sept 2015 18:34:35

Sí, he estado guardando los enlaces permanentes entre cada cambio al CPT. La vista normal del CPT siempre ha funcionado bien, es solo la vista previa en estado de borrador la que no funciona. Una vez publicado, la vista previa funciona. Pero mis autores quieren previsualizar antes de publicar. :)

Michelle Michelle
29 sept 2015 18:38:27

Usé tu código tal cual. Funcionó bien en WordPress 4.3.1. ¿Podrías confirmar tu versión de WP? Además, si estás registrando este tipo de publicación en un plugin, podrías considerar 'Flushing Rewrite On Activation' en lugar del vaciado manual de enlaces permanentes.

Prasad Nevase Prasad Nevase
30 sept 2015 05:51:39
Todas las respuestas a la pregunta 1
0

El código que proporcionaste funciona como se espera en una instalación limpia de WordPress (4.3.1 en este caso). Las ideas a continuación no deben considerarse una respuesta, sino más bien una lista de verificación para ayudar en la depuración del problema al reducir el alcance del mismo:

  1. Necesitarás iniciar sesión como un usuario con permisos para ver borradores para evitar un error 404 o redirección.

  2. Intenta desactivar tus plugins uno por uno para ver si quizás alguno de ellos ha establecido una regla de reescritura conflictiva.

  3. Revisa la configuración de tu servidor web (como .htaccess en Apache) para ver si hay reglas de redirección implementadas allí.

  4. Finalmente, considera cambiar temporalmente a otro tema y agregar tu tipo de publicación personalizada allí para ver si obtienes los mismos resultados. Si un nuevo tema resuelve el problema con tu código, quizás los conflictos existan dentro de tu tema actual.

29 sept 2015 20:49:09