Как передать переменную в фильтр the_post_thumbnail?

Как передать параметр в фильтр для обработки the_post_thumbnail.
К примеру: the_post_thumbnail('slider') или the_post_thumbnail('new')

в functions.php
function multi_format_thumbnail( $html ){
   $url = get_the_post_thumbnail_url();
   if...... 
   $html = "<img src=\"" . $url . "\">";
   return $html;
}
add_filter('post_thumbnail_html', 'multi_format_thumbnail');
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
Tolly
@Tolly Автор вопроса
the_post_thumbnail('slider', array('class' => 'buka', 'id' => 'tuka'));


в functions.php
function multi_format_thumbnail( $html, $post_id, $post_thumbnail_id, $size, $attr ){
        # aaa имеет значение 'slider'
	$aaa = $size;

        # Присваиваем $bbb = 'buka'
        # Иначе ошибка: "Undefined variable: bbb"
        $bbb = '';
        # Иначе ошибка: "Illegal string offset 'class'"
	if(!is_array($attr)) $attr = array();
        # Иначе ошибка: "Uninitialized string offset: 0"
	if (array_key_exists('class', $attr)) $bbb=$attr['class'];

        # Аналогично присваивается для $ccc='tuka'

	# url картинки thumbnail
	$url = get_the_post_thumbnail_url();
	$html = "<img src=\"" . $url . "\" data1=\"" . $aaa . "\" data2=\"" . $bbb . "\" data3=\"" . $ccc . "\">";
	return $html;
}
add_filter('post_thumbnail_html', 'multi_format_thumbnail', 10, 5);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Если это Ваш плагин, то как опцию Вашего плагина, или как член класса Вашего плагина
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы