Как передать переменную в фильтр 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');
  • Вопрос задан
  • 84 просмотра
Решения вопроса 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
Если это Ваш плагин, то как опцию Вашего плагина, или как член класса Вашего плагина
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы