Чтобы добавить миниатюры к таксономиям в WordPress, нужно использовать функцию `add_image_size()` для добавления новой поддержки изображения и затем использовать фильтр для активизации этой функции для необходимой таксономии. Например, если вы хотите добавить миниатюру к таксономии "Квартиры", вам потребуется выполнить следующие шаги:
1. **Добавьте поддержку миниатюр для таксономии**. Это можно сделать с помощью хука `init`:
```php
// Добавьте поддержку миниатюр для таксономий
function my_register_taxonomy() {
register_taxonomy('apartments', 'post', array(
'label' => 'Квартиры',
'public' => true,
'hierarchical' => true,
// Другие параметры таксономии
));
// Добавляем поддержку миниатюры для таксономии
add_post_type_support('apartments', 'thumbnail');
}
add_action('init', 'my_register_taxonomy');
```
2. **Создайте мета-поле для загрузки миниатюры**. Для этого используйте функцию `add_action` с хуком `add_meta_boxes`:
```php
// Добавляем метабокс для загрузки изображений
function my_apartment_thumbnail_meta_box() {
add_meta_box(
'apartment_thumbnail',
'Миниатюра квартиры',
'render_apartment_thumbnail_meta_box',
'apartments',
'side',
'default'
);
}
add_action('add_meta_boxes', 'my_apartment_thumbnail_meta_box');
function render_apartment_thumbnail_meta_box($term) {
$thumbnail_id = get_term_meta($term->term_id, 'thumbnail_id', true);
$thumbnail_url = wp_get_attachment_url($thumbnail_id);
?>
<div class="thumbnail-wrap">
<?php if ($thumbnail_url): ?>
<img src="<?php echo esc_url($thumbnail_url); ?>" style="width: 100%; height: auto;" />
<?php endif; ?>
<input type="hidden" id="thumbnail_id" name="thumbnail_id" value="<?php echo esc_attr($thumbnail_id); ?>" />
<button class="upload_image_button button">Загрузить миниатюру</button>
</div>
<script>
jQuery(document).ready(function($){
$('.upload_image_button').on('click', function(e) {
e.preventDefault();
var button = $(this);
var custom_uploader = wp.media({
title: 'Выберите изображение',
button: {
text: 'Выбрать изображение'
},
multiple: false
}).on('select', function() {
var attachment = custom_uploader.state().get('selection').first().toJSON();
$('#thumbnail_id').val(attachment.id);
button.prev('img').attr('src', attachment.url).show();
}).open();
});
});
</script>
<?php
}
```
3. **Сохраните миниатюру при сохранении таксономии**:
```php
function save_apartment_thumbnail($term_id) {
if (isset($_POST['thumbnail_id'])) {
$thumbnail_id = intval($_POST['thumbnail_id']);
update_term_meta($term_id, 'thumbnail_id', $thumbnail_id);
}
}
add_action('created_apartments', 'save_apartment_thumbnail');
add_action('edit_apartments', 'save_apartment_thumbnail');
```
Таким образом, вы добавите возможность загружать миниатюры для таксономии "Квартиры" в вашей теме WordPress. После этого вы сможете использовать загруженные миниатюры в своем шаблоне, обращаясь к мета-данным терминов.