Задать вопрос
meekes
@meekes
Стажер

Почему не работает переменная в шордкоде?

Создал переменю, в просто через echo она работает, а в шордкоде нет

add_shortcode( 'gorod', 'gorod_func' );

$gorod = $wpdb->get_var($wpdb->prepare(
"SELECT gorod FROM wp_customplugin WHERE url = %s", $post_slug));

function gorod_func( $atts ){
    return $gorod;
}


В любом месте на странице пишу echo ". $gorod ."; Текст показывается, а в шорткоде [gorod] пусто
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
V_A_B
@V_A_B
¯\_(ツ)_/¯
Потому, что переменная «$gorod» вне области видимости функции «gorod_func».

Вариант 1

add_shortcode( 'gorod', 'gorod_func' );

$gorod = 'Тюмень';

function gorod_func( $atts ){	
    return $GLOBALS['gorod'];
}



Вариант 2

add_shortcode( 'gorod', 'gorod_func' );

$gorod = 'Тюмень';

function gorod_func( $atts ){	
		global $gorod;
    return $gorod;
}

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
meekes
@meekes Автор вопроса
Стажер
Возможно это из за
global $post;
$post_slug = $post->post_name;


т.к. если это вставить в functions.php, то $post_slug не работает
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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