Как расширить спойлер (шорткод wp)?

Здравствуйте!

Помогите пожалуйста расширить функционал спойлера:
function simple_spoiler_shortcode($atts, $content) {
	if ( ! isset($atts['title']) ) {
		$sp_name = __( 'Спойлер', 'simple-spoiler' );
	} else {
		$sp_name = $atts['title'];
	}
	return '<div class="spoiler">
				<div class="head">'.$sp_name.'</div>
				<div class="cont">'.$content.'</div>
			</div>';
}


Нужно добавить еще одну опцию - icon (будет иконка у заголовка спойлера)

Но, что усложняет - нужно небольшое условие: Если спойлер публикуют так:
[spoiler title="Название"][/spoiler]

Тогда выводить html такой:
<div class="spoiler">
				<div class="head">'.$sp_name.'</div>
				<div class="cont">'.$content.'</div>
			</div>


А вот, если спойлер с иконкой:
[spoiler title="Название" icon="image url"][/spoiler]


Тогда html должен быть с иконкой:
<div class="spoiler">
				<div class="head icon"><div class="icon">'.$sp_icon.'</div>'.$sp_name.'</div>
				<div class="cont">'.$content.'</div>
			</div>


Можно ли так?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
DELUX
@DELUX Автор вопроса
Помогли в комментариях - вдруг кому пригодится - рабочий варинт:
function simple_spoiler_shortcode($atts, $content) {
	if ( ! isset($atts['title']) ) {
		$sp_name = __( 'Спойлер', 'simple-spoiler' );
	} else {
		$sp_name = $atts['title'];
	}

	$sp_icon='';
	if(!empty($atts['icon'])){
	  $sp_icon = '<div class="icon"><img src="'.$atts['icon'].'" alt="" /></div>';
	  $sp_class = 'icon';
	}
	return '<div class="spoiler">
	      <div class="head '.$sp_class.'">'.$sp_icon.$sp_name.'</div>
	      <div class="cont">'.$content.'</div>
	    </div>';
}
add_shortcode( 'spoiler', 'simple_spoiler_shortcode' );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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