admin_post_thumbnail_html
Позволяет изменить html код (контент) метабокса "Изображение записи".
Фильтр срабатывает только при использовании классического редактора записи (не гутенберг).
Использование
add_filter( 'admin_post_thumbnail_html', 'wp_kama_admin_post_thumbnail_html_filter', 10, 3 );
/**
* Function for `admin_post_thumbnail_html` filter-hook.
*
* @param string $content Admin post thumbnail HTML markup.
* @param int $post_id Post ID.
* @param int|null $thumbnail_id Thumbnail attachment ID, or null if there isn't one.
*
* @return string
*/
function wp_kama_admin_post_thumbnail_html_filter( $content, $post_id, $thumbnail_id ){
// filter...
return $content;
}
- $content(строка)
- HTML код (контент) метабокса (содержимое метабокса "Изображение записи").
- $post_id(число)
- ID записи.
- $thumbnail_id(число/null)
- ID вложения (картинки из медиабиблиотеки). null, когда миниатюра не установлена для записи.
Примеры
#1 Пример содержимого переменной $content
Нет миниатюры
<p class="hide-if-no-js"> <a href="https://wp-test.ru/wp-admin/media-upload.php?post_id=106&type=image&TB_iframe=1" id="set-post-thumbnail" class="thickbox"> Установить изображение записи </a> </p> <input type="hidden" id="_thumbnail_id" name="_thumbnail_id" value="-1" />
Есть миниатюра
<p class="hide-if-no-js"> <a href="https://example.com/wp-admin/media-upload.php?post_id=106&type=image&TB_iframe=1" id="set-post-thumbnail" aria-describedby="set-post-thumbnail-desc" class="thickbox"> <img width="580" height="580" src="https://example.com/wp-content/uploads/2020/12/image.jpg" class="attachment-post-thumbnail size-post-thumbnail" alt="" loading="lazy" srcset="https://example.com/wp-content/uploads/2020/12/image.jpg 700w, https://example.com/wp-content/uploads/2020/12/image-300x300.jpg 300w, https://example.com/wp-content/uploads/2020/12/image-150x150.jpg 150w" sizes="(max-width: 580px) 100vw, 580px" /> </a> </p> <p class="hide-if-no-js howto" id="set-post-thumbnail-desc"> Нажмите на изображение, чтобы изменить или обновить его </p> <p class="hide-if-no-js"> <a href="#" id="remove-post-thumbnail">Удалить изображение записи</a> </p> <input type="hidden" id="_thumbnail_id" name="_thumbnail_id" value="100" />
#2 Добавление любого контента в начало или в конец содержимого метабокса
add_filter( 'admin_post_thumbnail_html', function ( $content ) {
$before_content = '<p>Контент в начало содержимого.</p>';
$after_content = '<p>Контент в конец содержимого.</p>';
return $before_content . $content . $after_content;
} ); #3 Добавление извещения, если миниатюра не в форме SVG
function admin_post_thumbnail_html_add_notice( $content, $post_id, $thumbnail_id ) {
if ( ! ( $thumbnail_id && 'school' === get_post_type( $post_id ) ) ) {
return $content;
}
$path = get_attached_file( $thumbnail_id );
if ( ! str_contains( $path, '.svg' ) ) {
$text = 'Вы указали лого не в формате SVG! Оно не будет выведено на странце школы и в списке школ.';
$notice = '<div style="background: #ff0000;padding: 5px;color: #ffffff; font-weight: bold;">' . $text . '</div>';
$content = $notice . $content;
}
return $content;
}
add_filter( 'admin_post_thumbnail_html', 'admin_post_thumbnail_html_add_notice', 11, 3 );
Список изменений
| С версии 2.9.0 | Введена. |
| С версии 3.5.0 | Added the $post_id parameter. |
| С версии 4.6.0 | Added the $thumbnail_id parameter. |
Где вызывается хук
admin_post_thumbnail_html
wp-admin/includes/post.php 1707
return apply_filters( 'admin_post_thumbnail_html', $content, $post->ID, $thumbnail_id );