Шаблон Wordpress с одним сообщением не отображает сообщение

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

Сначала single.php перехватывал общие сообщения в блогах, а также участников, но не проповеди... он отображал только файл index.php.

После некоторых исследований я обнаружил, что сброс (сохранение) постоянных ссылок приведет к их сбросу. Этот вид работал, теперь перехватывая пользовательские сообщения участников, но только для отображения index.php для проповедей.

я их так называю...

// Custom Post types for Sermons
add_action('init', 'sermons');

function sermons() {
  $args = array(
    'labels' => array(
       'name' => __( 'Sermons' ),
       'singular_name' => __( 'Sermons' ),
       'add_new' => __( 'Add Sermon' ),
       'add_new_item' => __( 'Add Sermon' ),
       'edit_item' => __( 'Edit Sermon' ),
       'new_item' => __( 'Add Sermon' ),
       'view_item' => __( 'View Sermon' ),
       'search_items' => __( 'Search Sermons' ),
       'not_found' => __( 'No Home Sermons found' ),
       'not_found_in_trash' => __( 'No Sermons found in trash' )
   ),
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    // 'menu_icon' => WP_CONTENT_URL . '/themes/####/images/home-widget.png',
    'rewrite' => true,
    'exclude_from_search' => true,
    'menu_position' => 20,
    'supports' => array('title', 'editor', 'thumbnail', 'page-attributes'),
    'has_archive' => true
  );

  register_post_type('sermons',$args);
}

// Custom Post types for Members
add_action('init', 'members');

function members() {
  $args = array(
    'labels' => array(
       'name' => __( 'Members' ),
       'singular_name' => __( 'Members' ),
       'add_new' => __( 'Add Member' ),
       'add_new_item' => __( 'Add Member' ),
       'edit_item' => __( 'Edit Member' ),
       'new_item' => __( 'Add Member' ),
       'view_item' => __( 'View Member' ),
       'search_items' => __( 'Search Members' ),
       'not_found' => __( 'No Home Members found' ),
       'not_found_in_trash' => __( 'No Members found in trash' )
   ),
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    // 'menu_icon' => WP_CONTENT_URL . '/themes/####/images/home-widget.png',
    'rewrite' => true,
    'exclude_from_search' => true,
    'menu_position' => 20,
    'supports' => array('title', 'editor', 'thumbnail', 'page-attributes'),
    'has_archive' => true
  );

  register_post_type('members',$args);
}

Я пробовал single-sermons.php и single-members.php, похоже, они не работают. Это способ, которым я зарегистрировал каждый пользовательский тип сообщения, нарушает это?

**** РЕДАКТИРОВАТЬ **** Удалено 'rewrite' => true из $args, и все в порядке, но я бы предпочел иметь URL-адреса, оптимизированные для SEO.

**** РЕДАКТИРОВАТЬ **** Исправлено ... очевидно, удаление 'rewrite' => true в аргументах, обновление постоянных ссылок и добавление 'rewrite' => true снова сделали свое дело.


person Seth    schedule 06.05.2013    source источник
comment
Просто интересно, помогает ли установка «publicly_queryable» =› true в качестве аргумента. codex.wordpress.org/Function_Reference/ . Как насчет того, чтобы настроить шаблоны single-sermons.php и single-members.php?   -  person McNab    schedule 06.05.2013
comment
да пробовал так. Не отображалось по какой-то причине. Я попробую ваше предложение, хотя. Большое спасибо   -  person Seth    schedule 06.05.2013


Ответы (4)


Вы должны сделать flush_rewrite_rules() после того, как вы создали свои пользовательские типы сообщений, это обновит для вас структуру постоянных ссылок.

Просто добавьте flush_rewrite_rules() после вашей функции register_post_type().

Дополнительная информация: http://codex.wordpress.org/Function_Reference/flush_rewrite_rules

person user2019515    schedule 06.05.2013
comment
Он работал, делая то, что должен был. Но это также вернуло меня к исходной проблеме, которая у меня была. - person Seth; 07.05.2013
comment
Я сомневаюсь, что проблема, с которой вы столкнулись, связана с приведенным выше кодом, я не вижу ничего необычного. - person user2019515; 08.05.2013

Исправлено... по-видимому, удаление 'rewrite' => true в аргументах, обновление постоянных ссылок и повторное добавление 'rewrite' => true помогает.

person Seth    schedule 06.05.2013

Мне помогло повторное сохранение постоянных ссылок. (Настройки -> Постоянные ссылки -> СОХРАНИТЬ).

person fanta    schedule 27.11.2014
comment
Я упомянул в вопросе, что сохранение постоянных ссылок не решило проблему полностью. Коды Мэри Луиз Паркер?? - person Seth; 28.11.2014
comment
Я знаю, но удаление 'rewrite' =› true не сработало для меня, поэтому исправление постоянных ссылок может сработать для кого-то еще с таким же сценарием. Ваше здоровье - person fanta; 08.12.2014

Настройка publicly_queryable => true устранила мою проблему.

person Azizul Haque    schedule 19.02.2017