A
A
Alexander Osadchy2020-07-05 20:53:42
WordPress
Alexander Osadchy, 2020-07-05 20:53:42

Why doesn't the link to the Custom post type archive work?

There are CPT-works

add_action( 'init', 'register_works_post_type' );
function register_works_post_type() {
  // Раздел вопроса - workscat
  register_taxonomy('workscat', array('works'), array(
    'label'                 => 'Категории', // определяется параметром $labels->name
    'labels'                => array(
      'name'              => 'Категории работ',
      'singular_name'     => 'Категории',
      'search_items'      => 'Искать категорию',
      'all_items'         => 'Все категории',
      'parent_item'       => 'Родит. категория',
      'parent_item_colon' => 'Родит. категория:',
      'edit_item'         => 'Ред. категорию',
      'update_item'       => 'Обновить категорию',
      'add_new_item'      => 'Добавить категорию',
      'new_item_name'     => 'Новый Раздел вопроса',
      'menu_name'         => 'Категории',
    ),
    'description'           => 'Рубрики для портфолио', // описание таксономии
    'public'                => true,
    'show_in_nav_menus'     => false, // равен аргументу public
    'show_ui'               => true, // равен аргументу public
    'show_tagcloud'         => false, // равен аргументу show_ui
    'hierarchical'          => true,
    'rewrite'               => array('slug'=>'works', 'hierarchical'=>false, 'with_front'=>false, 'feed'=>false ),
    'show_admin_column'     => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5)
    ) );

  // тип записи - вопросы - works
  register_post_type('works', array(
    'label'               => 'Наши работы',
    'labels'              => array(
            'name' => 'Наши работы',
            'singular_name' => 'Работа',
            'add_new' => 'Добавить работу',
            'add_new_item' => 'Добавить новую работу',
            'edit_item' => 'Редактировать работу',
            'new_item' => 'Новая работа',
            'all_items' => 'Все работы',
            'search_items' => 'Искать',
            'not_found' =>  'Работа не найдена.',
            'not_found_in_trash' => 'В корзине нет работ.',
            'menu_name' => 'Работы'
        ),
        'menu_icon' => 'dashicons-portfolio',
    'description'         => '',
    'public'              => true,
    'publicly_queryable'  => true,
    'show_ui'             => true,
        'show_in_rest'        => false,
        'menu_position' => 5,
    'rest_base'           => '',
    'show_in_menu'        => true,
    'exclude_from_search' => false,
    'capability_type'     => 'post',
    'map_meta_cap'        => true,
    'hierarchical'        => false,
    'rewrite'             => array( 'slug'=>'works/%workscat%', 'with_front'=>false, 'pages'=>false, 'feeds'=>false, 'feed'=>false ),
    'has_archive'         => true,
    'query_var'           => true,
    'supports'            => array( 'title', 'editor' ),
    'taxonomies'          => array( 'workscat' ),
  ) );

}

Why does the site.com/works page give a 404?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
Pavel Chesnokov, 2020-07-08
@DELUX

The error is because it does not know what is hidden under rewriteand cannot replace it with the name of the custom category. You need to register an address change rule and a tag:register_post_type%workscat%

add_action( 'init', function(){
    add_rewrite_rule(...);
    add_rewrite_tag(...);
});

And then reset the settings:flush_rewrite_rules();

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question