Support » Plugin: YaMaps for WordPress Plugin » Не работает foreach в шорткоде

  • Resolved heitz

    (@heitz)


    Скачав плагин, и решив использовать его с wpbakery page builder, решил для него написать маленький аддон, в котором бы он формировал нужный шорткод, с несколькими метками на одной карте (методом перебора данных из моих полей)

    <div id="cs_pansion_map" class="cs_pansion_map">
    					<?php $maps_items = (array)vc_param_group_parse_atts($maps_items); ?>
    						<?php function() {
    							$str = '[yamap center="55.75399399999374,37.62209300000001" height="450px" controls="zoomControl;fullscreenControl" zoom="12" type="yandex#map"]';
    							$maps_items = (array)vc_param_group_parse_atts($maps_items);
    							foreach ($maps_items as $key => $maps_item) {
    								$home_title = $maps_item['title'];
    								$home_color = $maps_item['item_color'];
    								$home_icon = $maps_item['icon'];
    								$home_coordinate = $maps_item['coordinate'];
    
    								$str  .= '[yaplacemark '
    									  . ' name="'.$home_title.'" '
    									  . ' coord="'.$home_coordinate.'" '
    									  . ' icon="'.$home_icon.'" '
    									  . ' color="'.$home_color.'" '
    									  . ' ]';
    							}
    							$str .= '[/yamap]';
    							echo do_shortcode( $str );
    						} ?>
    
    					
    			</div>

    Сделал такой код, проверил на валидность. всё верно… и дальше вместо успеха, пусто. ничего… при этом если использовать при тех же равных просто шорткод данного плагина, всё отлично… был бы очень благодарен за поддержку

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author Yuri Baranov

    (@yhunter)

    Здравствуйте. Я, конечно, не вижу, что у вас должен отдавать wpbakery, поэтому попробовал подсовывать тестовые данные и вставил предложенный код.

    Если функции присвоить имя (в третей строке) и вызвать по нему эту функцию, то все работает, как надо.

    <div id="cs_pansion_map" class="cs_pansion_map">
    					<?php $maps_items = (array)vc_param_group_parse_atts($maps_items); ?>
    						<?php function mapFunc() {
    							$str = '[yamap center="55.75399399999374,37.62209300000001" height="450px" controls="zoomControl;fullscreenControl" zoom="12" type="yandex#map"]';
    							$maps_items = (array)vc_param_group_parse_atts($maps_items);
    							foreach ($maps_items as $key => $maps_item) {
    								$home_title = $maps_item['title'];
    								$home_color = $maps_item['item_color'];
    								$home_icon = $maps_item['icon'];
    								$home_coordinate = $maps_item['coordinate'];
    
    								$str  .= '[yaplacemark '
    									  . ' name="'.$home_title.'" '
    									  . ' coord="'.$home_coordinate.'" '
    									  . ' icon="'.$home_icon.'" '
    									  . ' color="'.$home_color.'" '
    									  . ' ]';
    							}
    							$str .= '[/yamap]';
    							echo do_shortcode( $str );
    						} 
    mapFunc();
    ?>
    
    					
    			</div>
    Thread Starter heitz

    (@heitz)

    Попробую , спасибо огромное за поддержку и оперативность, вы бы знали как вы во время. Ещё раз спасибо

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Не работает foreach в шорткоде’ is closed to new replies.