2013-10-28 1 views
1

Один из пользовательских типов сообщений, которые у меня есть на сайте, теперь больше не работает: записи базы данных все еще существуют, но я не могу получить доступ к сообщениям. Я думаю, что это известная проблема с permalinks, но, пройдя большое количество сообщений и попробовав предлагаемые решения, я все еще не согласен с этой проблемой.Постоянная ссылка/Проблема с настраиваемым типом сообщений - не удалось решить

У меня есть «один, php» файл с некоторым кодом сортировки, который затем перенаправляется на три разных отдельных файла («single-author.php», «single-book.php», «single-event.php») ,

Что я пробовал:

  • Switching структуру постоянных ссылок и переключение обратно
  • правила перезаписи Промывка
  • Проверка правил перезаписи в .htaccess

Если я создаю новую запись в этот пользовательский тип сообщения я вижу в «предварительном просмотре», но как только я его опубликовал, я получаю 404. Проблема, похоже, не влияет на другие пользовательские типы сообщений, которые я запускал на сайте. Помимо недавнего обновления WP, я не внес никаких изменений на сайт.

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

Большое спасибо!

add_action('init', 'authors_register'); 

function authors_register() { 

$labels = array(
    'name' => _x('Authors', 'post type general name'), 
    'singular_name' => _x('Author', 'post type singular name'), 
    'add_new' => _x('Add New', 'portfolio item'), 
    'add_new_item' => __('Add New Author'), 
    'edit_item' => __('Edit Author'), 
    'new_item' => __('New Author'), 
    'view_item' => __('View Author'), 
    'search_items' => __('Search Authors'), 
    'not_found' => __('Nothing found'), 
    'not_found_in_trash' => __('Nothing found in Trash'), 
    'parent_item_colon' => '' 
); 

$args = array(
    'labels' => $labels, 
    'public' => true, 
    'publicly_queryable' => true, 
    'show_ui' => true, 
    'query_var' => true, 
    'rewrite' => true, 
    'capability_type' => 'post', 
    'hierarchical' => false, 
    'menu_position' => 5, 
    'supports' => array('title','thumbnail','revisions','excerpt'), 
    'taxonomies' => array('category', 'post_tag') 
); 

register_post_type('author' , $args); 

} 

Сортировка/переключение кода в single.php:

<?php if ('post_type=book') { include (TEMPLATEPATH . '/single-book.php'); } 

elseif ('post_type=event') { include (TEMPLATEPATH . '/single-event.php'); } 

elseif ('post_type=author') { include (TEMPLATEPATH . '/single-author.php'); } 

else { include (TEMPLATEPATH . '/single-post.php'); } ?> 
+0

Может быть, имя автора является конфликтом. Попробуйте использовать другой пост-тип. –

+0

Спасибо, Биндия, хотя я не уверен, с чем это будет связано. У меня есть страница, в которой перечислены все авторы, но это «page-authors.php» (множественное число, а значит, другое слизняк). – Rob

ответ

0
<?php if ('post_type=book') { include (TEMPLATEPATH . '/single-book.php'); } 

elseif ('post_type=event') { include (TEMPLATEPATH . '/single-event.php'); } 

elseif ('post_type=author') { include (TEMPLATEPATH . '/single-author.php'); } 

else { include (TEMPLATEPATH . '/single-post.php'); } ?> 

всегда будет возвращать Однополочные book.php

'post_type = книги' всегда возвращает истину. Вы должны иметь post_type в переменной и проверить для каждого

<?php 
$post_type = get_post_type(); 

if ($post_type == 'book') { include (TEMPLATEPATH . '/single-book.php'); } 
elseif ($post_type == 'event') { include (TEMPLATEPATH . '/single-event.php'); } 
elseif ($post_type == 'author') { include (TEMPLATEPATH . '/single-author.php'); } 
else { include (TEMPLATEPATH . '/single-post.php'); } ?> 

Кроме того, автор не является зарезервированным типом сообщения. Зарезервированные типы сообщений:

post 
page 
attachment 
revision 
nav_menu_item 
+0

Спасибо @Eek - я заменил код переключения, но я боюсь, что проблема все еще сохраняется. Не могли бы вы рассказать о последнем моменте, поскольку я не уверен, каковы последствия этого. Благодаря! – Rob

+0

Может ли кто-нибудь предложить дополнительную помощь по этому поводу? Боюсь, я все еще придерживаюсь той же проблемы. – Rob

+0

Сначала проверьте, работает ли другой тип сообщения. 'single- $ posttype.php' должен работать по умолчанию в соответствии со структурой WordPress -> http://codex.wordpress.org/images/1/18/Template_Hierarchy.png Если это не сработает, мы можем попытаться посмотреть где-то еще, если это работает, тогда проблема заключается в том, что вы создаете новый тип сообщения с названием «автор» – Eek

 Смежные вопросы

  • Нет связанных вопросов^_^