По сути, я пытаюсь закодировать систему рейтинга.
У меня есть Rating
и Listing
пользовательский тип записи.Что я хочу сделать, это зарегистрировать таксономию на Rating
, которая покажет, какой пост оценивается как Listing
пользовательский тип поста.Кроме того, я хочу, чтобы Listing
смог зарегистрировать таксономию, которая показывает среднее значение всех оценок на этом посту.Я уже искал похожий вопрос и нашел только таксономии, связанные с метабоксом, которые мне не интересны, поскольку я хочу, чтобы пользовательские типы сообщений добавлялись из внешнего интерфейса.
function create_post_type_listing()
{
register_taxonomy_for_object_type('category', 'makedir-listing'); // Register Taxonomies for Category
register_taxonomy_for_object_type('post_tag', 'makedir-listing');
register_post_type('makedir-listing', // Register Custom Post Type
array(
'labels' => array(
'name' => __('Listing Post', 'makedirlisting'),
'singular_name' => __('Listing Post', 'makedirlisting'),
'add_new' => __('Add New', 'makedirlisting'),
'add_new_item' => __('Add New Listing Post', 'makedirlisting'),
'edit' => __('Edit', 'makedirlisting'),
'edit_item' => __('Edit Listing Post', 'makedirlisting'),
'new_item' => __('New Listing Post', 'makedirlisting'),
'view' => __('View Listing Post', 'makedirlisting'),
'view_item' => __('View Listing Post', 'makedirlisting'),
'search_items' => __('Search Listing Post', 'makedirlisting'),
'not_found' => __('No Listing Posts found', 'makedirlisting'),
'not_found_in_trash' => __('No Listing Posts found in Trash', 'makedirlisting')
),
'public' => true,
'hierarchical' => true, // Allows your posts to behave like Hierarchy Pages
'has_archive' => true,
'supports' => array(
'title',
'editor',
'thumbnail'
),
'can_export' => true, // Allows export in Tools > Export
'taxonomies' => array(
'post_tag',
'category'
) // Add Category and Post Tags support
));
register_taxonomy(
'rating',
'makedir-listing',
array(
'label' => __( 'Rating' ),
'rewrite' => array( 'slug' => 'rating' ),
'hierarchical' => true,
'show_ui' => false,
'show_admin_column' => true
)
);
}
function create_post_type_rating()
{
register_post_type('makedir-rating', // Register Custom Post Type
array(
'labels' => array(
'name' => __('Rating', 'makedirrating'),
'singular_name' => __('Rating', 'makedirrating'),
'add_new' => __('Add New', 'makedirrating'),
'add_new_item' => __('Add New Rating', 'makedirrating'),
'edit' => __('Edit', 'makedirrating'),
'edit_item' => __('Edit Rating', 'makedirrating'),
'new_item' => __('New Rating', 'makedirrating'),
'view' => __('View Ratings', 'makedirrating'),
'view_item' => __('View Rating', 'makedirrating'),
'search_items' => __('Search Rating', 'makedirrating'),
'not_found' => __('No Ratings found', 'makedirrating'),
'not_found_in_trash' => __('No Ratings found in Trash', 'makedirlisting')
),
'public' => true,
'hierarchical' => false, // Allows your posts to behave like Hierarchy Pages
'has_archive' => false,
'supports' => array(
'title',
'editor',
),
'can_export' => true // Allows export in Tools > Export
));
register_taxonomy(
'post',
'makedir-rating',
array(
'label' => __( 'Post' ),
'rewrite' => array( 'slug' => 'post' ),
'hierarchical' => true,
'show_ui' => false,
'show_admin_column' => true
)
);
}
YouМожно увидеть, где я борюсь за реализацию упомянутых функций, в нижней части каждой функции.Надеюсь, я прояснил это достаточно.