Отношение родителя и потомка для пользовательских типов записей


Я использую этот код для портфолио пользовательских сообщений типа calles. Теперь я хочу использовать связь между родителями и детьми между элементами. Например, у меня есть элемент портфолио с этим URL-адресом: www.domain.de/portfolio-item1

Другой элемент портфолио должен быть дочерним элементом элемента портфолио1, а URL-адрес должен быть
www.domain.de/portfolio-item1/portfolio-item2

Я новичок в php, и я не знаю, как я могу это реализовать. Кто-нибудь может мне помочь?

 // Portfolio Post Type

    add_action('init','wpthesis_create_portfolio_init');
    function wpthesis_create_portfolio_init()  {
        $labels = array    
    (        'name' => _x('Portfolio', 'post type general name'),
             'singular_name' => _x('item', 'post type singular name'),
             'add_new' => _x('Add New', 'Portfolio Item'), 
             'add_new_item' => __('Add New Portfolio Item'), 
             'edit_item' => __('Edit Portfolio Item'),  
            'new_item' => __('New Portfolio Item'),
            'view_item' => __('View Portfolio Item'),
            'search_items' => __('Search Portfolio'), 
            'not_found' =>  __('No portfolio items found'), 
            'not_found_in_trash' => __('No portfolio items found in Trash'), 
            'parent_item_colon' => ''    
    ); 

       $support = array    
    (       
     'title', 
           'editor',
            'author',
            'thumbnail',
            'custom-fields',
            'comments',
            'genesis-seo', 
            'genesis-layouts',
            'revisions'    
    );    

    $args = array  
      (     
       'labels' => $labels,
            'public' => TRUE,
            'rewrite' => array('slug'=>('produkte-leistungen'),'with_front'=>false),
            'capability_type' => 'page', 
           'hierarchical' => FALSE,
            'query_var' => true, 
           'supports' => $support,        'taxonomies' => array('portfolio-category'),
            'menu_position' => 5 
       );    
     register_post_type('portfolio',$args);

            register_taxonomy(
            'portfolio-category', 
            'portfolio',        

    array(            
    'hierarchical' => TRUE, 
               'label' => 'Categories',
                'query_var' => TRUE,
                'rewrite' => FALSE,       
     )    
    );  
    }
Author: Mayeenul Islam, 2015-10-19

1 answers

Чтобы подробнее рассказать о том, что сказал Майенул Ислам, из Документов WP по regsiter_post_type

Иерархический
( логический) (необязательно) Является ли тип записи иерархическим (например , страница). Позволяет указать родителя . Параметр "поддержка" должен содержать "атрибуты страницы", чтобы отобразить родительское поле выбора в редакторе страница. Значение по умолчанию: false

Акцент мой. Установив для этого значение true, вы сможете свяжите сообщения друг с другом.

ИЗМЕНИТЬ: Добавлен код

$support = array (
    'title',
    'editor',
    'author',
    'thumbnail',
    'custom-fields',
    'comments',
    'genesis-seo',
    'genesis-layouts',
    'revisions',
    // Add this to supports
    'page-attributes',
);

$args = array  (
    'labels' => $labels,
    'public' => TRUE,
    'rewrite' => array('slug'=>('produkte-leistungen'),'with_front'=>false),
    'capability_type' => 'page',
    // You had this set to FALSE, try it with TRUE
    'hierarchical' => TRUE,
    'query_var' => true,
    'supports' => $support,
    'taxonomies' => array('portfolio-category'),
    'menu_position' => 5
);

register_post_type('portfolio',$args);

В приведенном выше фрагменте я добавил "атрибуты страницы" в $support и установил параметр "иерархический" в TRUE в $args. Это должно помочь вам правильно настроиться.

 1
Author: phatskat, 2015-10-19 14:36:17