2015-07-03 3 views
0

Я делаю базовый короткий код для перевода текста в нижнем колонтитуле сайта wordpress, и я использую get_post_meta() для идентификации языка в метатеге (который я добавляю с подключаемым модулем для вставки html-кода в заголовок), но он возвращает пустой. Мне интересно, если это потому, что плагин и порядок, в котором он создает элементы (сначала он выполняет мой короткий код, а затем плагин), или если он что-то другое.get_post_meta() возвращает пусто

function text_Footer($atts, $content=null){ 

    extract(shortcode_atts(array(
      'id' => '' 
    ), $atts)); 
    $ID = get_the_ID(); 
    $lang = get_post_meta(ID,'language',true); 
    if($lang == 'portuguese') 
    { 
    $output='<p>Text in portuguese</p>'; 
    } 
    else 
    { 
    //echo $lang."nope"; 
    $output = '<p>Text in spanish</p>'; 
    } 
    return $output; 
} 
+0

Здесь немного проблем, таких как 'ID' в' get_post_meta (ID, 'language', true); ', не используйте 'extract', и неясно, какой объект сообщения вы пытаетесь настроить здесь. – birgire

ответ

0

Функция get_the_ID() должна быть в пределах цикла. , если вы хотите извлечь идентификатор из короткого кода, просто нужно использовать его в режиме записи: $lang = get_post_meta($id,'language',true);

Смежные вопросы