Пользовательские типы сообщений постоянные ссылки, возвращающие 404 - PullRequest
2 голосов
/ 05 мая 2011

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

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

Мой код:

register_post_type( 'diary_post',
  array(
    'labels' => array(
      'name' => __( 'Diary Post' ),
      'singular_name' => __( 'Diary Post' ),
      'add_new' => _x('Add New'),
      'add_new_item' => __('Add New Diary Post'),
      'edit_item' => __('Edit Diary Post'),
      'new_item' => __('New Diary Post'),
      'view_item' => __('View Diary Post'),
      'search_items' => __('Search Diary Posts'),
      'not_found' =>  __('No Diary posts found'),
      'not_found_in_trash' => __('No Diary posts found in Trash'), 
      'parent_item_colon' => ''
    ),
    'description' => __( 'Posts to appear on the Diary page' ),
    'public' => true,
    'publicly_queryable' => false,
    'exclude_from_search' => false,
    'query_var' => true,
    'menu_position' => 4,
    'supports' => array('title','editor','author','excerpt','thumbnail', 'custom-fields','comments','trackbacks','revisions'),
    'taxonomies' => array( 'diary_post_type','post_tag'),
    'has_archive' => true,
    'rewrite' => array( 'slug' => 'diary','with_front' => false)
  )
);

Я безуспешно пробовал следующие предложенные решения из различных сообщений:

  • Повторное сохранение моих постоянных ссылок Изменение
  • 'переписать' на просто 'true' Оба
  • 'with_front' => false и
  • 'with_front' =>true Добавление
  • flush_rewrite_rules ();после
  • register_post_type
  • Проверка отсутствия страниц или сообщений с именем 'diary'

Даже если я пытаюсь получить доступ к сообщению через структуру постоянных ссылок по умолчанию, такую ​​как http://localhost/?diary_post=my-title-here У меня нет успеха.

Моя постоянная структура сайта в настоящее время /%year%/%postname% - изменение этого параметра по умолчанию также не помогает.

Любые подсказки?В конце моего остроумия здесь.

Ответы [ 3 ]

4 голосов
/ 05 мая 2011

publicly_queryable должно быть истинным, но вам, вероятно, не нужно (или exclude_from_search), если вы устанавливаете public.Смотрите кодекс: http://codex.wordpress.org/Function_Reference/register_post_type#Arguments

2 голосов
/ 29 апреля 2014

Вот еще один ответ, чтобы помочь людям, у которых может быть та же проблема, что и у меня ...

Если вы недавно создали новый CPT, вам может потребоваться перейти к Настройки> Постоянные ссылки и нажмите Сохранить изменения еще раз.Это позволяет любым новым правилам перезаписи вступать в силу.

0 голосов
/ 27 сентября 2011

Вы должны добавить свойство _builtin к аргументам.

function rw_portfolio_register(){
    $args = array(
        'label' => __('Portfolio'),
        'singular_label' => __('Portfolio'),
        'public' => true,
        'show_ui' => true,
        '_builtin' => false,
        'capability_type' => 'post',
        'hierarchical' => false,
        'rewrite' => array("slug" => "project"),
        'supports' => array('title', 'editor')//Boxes will be showed in the panel
       );

    register_post_type( 'rw_portfolio' , $args );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...