Проблема с превью записей пользовательского типа "черновик"

29 сент. 2015 г., 18:32:23
Просмотры: 4.31K
Голосов: 1

У меня возникла проблема с превью черновиков пользовательского типа записи - при включенных "человекопонятных" постоянных ссылках происходит перенаправление на главную страницу сайта.

Например, я создаю новый "Проект", сохраняю как черновик и нажимаю "Просмотр". Окно предпросмотра открывает главную страницу сайта.

Если я устанавливаю стандартные постоянные ссылки, то все работает корректно.

Вот мой код регистрации типа записи. Согласно заметке в разделе 'publicly_queryable' на странице register_post_type в кодексе, я экспериментировал с разными значениями для 'query_var' (true / false / 'projects'), но ничего не помогло. Также пробовал редактировать аргумент rewrite или полностью его удалять. Безрезультатно. Спасибо за любую помощь!

ОБНОВЛЕНИЕ: Я подтвердил, что раньше это работало, а сломалось после последнего обновления. Предполагаю, что проблема связана с обновлением до версии 4.2.2, упомянутым в разделе 'publicly_queryable' на странице register_post_type в кодексе, но никто не заметил этого до сих пор.

// Проекты
      $labels = array(
        'name'                => 'Проекты',
        'singular_name'       => 'Проект',
        'menu_name'           => 'Проекты',
        'parent_item_colon'   => 'Родительский проект:',
        'all_items'           => 'Все проекты',
        'view_item'           => 'Просмотреть проект',
        'add_new_item'        => 'Добавить новый проект',
        'add_new'             => 'Добавить новый',
        'edit_item'           => 'Редактировать проект',
        'update_item'         => 'Обновить проект',
        'search_items'        => 'Искать проект',
        'not_found'           => 'Не найдено',
        'not_found_in_trash'  => 'Не найдено в корзине',
      );
       $rewrite = array(
        'slug'                       => 'projects',
        'with_front'                 => true,
        'hierarchical'               => true,
      );
      $args = array(
        'label'               => 'Проект',
        'description'         => 'Отдельные проекты',
        '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
Комментарии

Вы сохраняли постоянные ссылки после создания вашего типа записи? Вы можете просмотреть его в реальном времени на фронтенде без проблем?

Howdy_McGee Howdy_McGee
29 сент. 2015 г. 18:34:35

Да, я пересохранял постоянные ссылки после каждого изменения CPT. Обычный просмотр CPT всегда работал нормально, проблемы только с превью в статусе черновика. После публикации превью работает. Но мои авторы хотят видеть превью перед публикацией. :)

Michelle Michelle
29 сент. 2015 г. 18:38:27

Я использовал ваш код как есть. Он отлично работал в WordPress 4.3.1. Не могли бы вы подтвердить вашу версию WP? Также, если вы регистрируете этот тип записи в плагине, вы можете рассмотреть 'Сброс правил перезаписи при активации' вместо ручного сброса постоянных ссылок.

Prasad Nevase Prasad Nevase
30 сент. 2015 г. 05:51:39
Все ответы на вопрос 1
0

Предоставленный вами код работает как ожидается на чистой установке WordPress (в данном случае версии 4.3.1). Следующие пункты не следует считать ответом, а скорее контрольным списком для отладки проблемы путем сужения области поиска:

  1. Необходимо войти в систему как пользователь с правами просмотра черновиков, чтобы избежать ошибки 404 или перенаправления.

  2. Попробуйте отключать плагины по одному, чтобы проверить, не создал ли один из них конфликтующее правило перезаписи.

  3. Проверьте конфигурацию вашего веб-сервера (например, .htaccess на Apache) на наличие правил перенаправления.

  4. Наконец, попробуйте временно переключиться на другую тему и добавить там свой пользовательский тип записи, чтобы проверить, сохранится ли проблема. Если с новой темой код работает корректно, возможно, конфликты связаны с вашей текущей темой.

29 сент. 2015 г. 20:49:09