Отношение родителя и потомка для пользовательских типов записей
Я использую этот код для портфолио пользовательских сообщений типа 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,
)
);
}
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
. Это должно помочь вам правильно настроиться.