admin_post_thumbnail_html хук-фільтрWP 2.9.0

Дозволяє змінити 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, або 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 коли мініатюра не встановлена ​​для запису.

Приклади

0

#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, 580 />
	</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" />
0

#2 Додавання будь-якого контенту на початок або в кінець вмісту метабоксу

add_filter( 'admin_post_thumbnail_html', function ( $content ) {
	$before_content = '<p>Контент на початок вмісту.</p>';
	$after_content = '<p>Контент у кінець вмісту.</p>';

	return $before_content . $content . $after_content;
} );
0

#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.0Added $post_id parameter.
З версії 4.6.0Added the $thumbnail_id parameter.

Де викликається хук

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *