function partners($atts) {
extract(shortcode_atts(array(
'ids' => null,
'extra_options' => 'something' <----------------- in wordpress I can read this value using local $extra_options
), $atts));
global $extra_options; <----------------- trying to change local var to global
function print_partners_scripts() {
global $extra_options; <----------------- reading above variable
echo '<script type="text/javascript">' . "\n";
echo 'jQuery(document).ready(function() {'. "\n";
echo ' $(".partners-slider").bxSlider({
slideWidth: 924,
auto: 0,
autoStart: 0,
moveSlides: 1,
minSlides: 3,
maxSlides: 8,
pager: false,
controls: false,
slideMargin: 5,
' . $extra_options . ' <----------------- var is empty
});' . "\n";
echo '});' . "\n";
echo '</script>' . "\n";
}
add_action('wp_footer', 'print_partners_scripts');
$ids = explode(',', $ids);
$output = '<div class="ps-wrap"><div class="partners-slider">';
foreach($ids as $id) {
$img_attr = wp_get_attachment_image_src($id, 'full');
$output .= '<div class="pslide"><img src="' . $img_attr[0] . '" /></div>';
}
$output .= '</div></div>';
return $output;
}
Привет, Я пытаюсь прочитать var $ extra_options внутри print_partners_scripts(). Переменная задана в функции partners(). Я пытался сделать его глобальным и просто использовать его в определенном месте, но я думаю, что я делаю что-то неправильно;)Вложенные функции, переменные - PHP
Заранее благодарен!
ли определить вам функцию (print_partners_scripts) внутри другой функции (партнеры)? Зачем?! Вы действительно называете print_partners_scripts() где угодно? И вы сначала называете партнеров()? – OIS
Использование глобальных переменных устарело. Вы должны либо передать информацию в функцию, либо использовать сеанс для хранения данных. –
@JacobS У вас есть официальный источник этого иска? Глобалы обескуражены, но не устарели afaik. – OIS