Wordpress пользовательский пост родительский слаг - PullRequest
1 голос
/ 16 апреля 2019

Каков наилучший способ структурировать родительский / дочерний пользовательский тип записи, чтобы мой URL-адрес пули мог выглядеть следующим образом

https://www.mysite.co.uk/system/parent/child

Система Часть пули имеет жизненно важное значение, это часть плагин для нескольких тем для WordPress.Кроме того, родительские / дочерние части URL-адреса не всегда будут одинаковыми.Допустим, я делаю курс под названием «Как ездить на велосипеде», а в серии, называемой «Серия 1», мой слаг должен выглядеть следующим образом

https://www.mysite.co.uk/system/how-to-ride-a-bike/series-1

в тот момент, когда мои пользовательские типы сообщений выглядят так:

<?php
function create_post_type() {
    //Courses
    register_post_type( 'courses',
      [
        'labels' => array(
          'name' => __( 'Courses' ),
          'singular_name' => __( 'Course' )
        ),
        'description' => 'All courses',
        'public' => true,
        'rewrite' => array(
            'slug'       => 'system',
        ),
        'menu_icon' => 'dashicons-welcome-learn-more',
        'supports' => ['title', 'custom_fields', 'page-attributes']
      ]
    );

    //Series
    register_post_type( 'series',
        [
          'labels' => array(
            'name' => __( 'Series' ),
            'singular_name' => __( 'Series' )
          ),
          'show_ui'              => true,
          'show_in_menu'         => 'edit.php?post_type=courses',
          'description' => 'Course series',
          'public' => true,
          'rewrite'             => array('slug' => '/'),
          'hierarchical'        => true,
          'with_front'          => false,
          'capability_type'     => 'post',
          'has_archive'         => false,
          'supports' => ['title', 'custom_fields', 'page-attributes']
        ]
      );
}
add_action( 'init', 'create_post_type' );
?>

Я не уверен на 100%, как лучше связать дочерний элемент с родительским?На данный момент у меня есть расширенное настраиваемое поле для дочернего типа поста (серии), где вы выбираете родителя (курс), с которым он связан.

Каков наилучший способ структурировать мои пользовательские типы постов, чтобы я могможет связать ребенка с родителем и иметь слаг, указанный выше?

1 Ответ

0 голосов
/ 16 апреля 2019

Вы можете использовать родительские / дочерние структуры одного и того же пользовательского типа записи, используя значение page-attributes в массиве supports.

Вам необходимо сбросить правила переписывания в Wordpress перед добавлением подпункта. Просто зайдите на страницу с постоянными ссылками и нажмите «Сохранить» пару раз.

Вот мой пример с пользовательским типом записи subcase:

register_post_type( 'subcase',
    array(
        'hierarchical' => true, // needs to be true
        'labels'      => array(
            'name'          => __( 'Sub Cases' ),
            'singular_name' => __( 'Sub Case' )
        ),
        'taxonomies'  => array( 'category', 'post_tag' ),
        'public'      => true,
        'has_archive' => false,
        'rewrite'     => array(
            'slug'       => 'cases/subcases',
            'with_front' => true
        ),
        'supports'    => array(
            'page-attributes', // creates parent select box
            'title',
            'editor',
            'excerpt',
            'thumbnail'
        )
    )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...