wordpressor
  • 0
Эксперт

Глобальные переменные WordPress?

  • 0

У меня есть страница с метабоксом под названием «что-то». Он может иметь два значения «значение» и «значение2».

Я использую шорткод на этой странице и хочу, чтобы он отображал какое-то значение. Проблема в том, что я не знаю, как получить доступ к глобальной переменной в шорткоде?

Пример, у меня есть это в page.php:

if($something == "value") {   
     global $one, $two; 
     $one = 120;
     $two = 240;
}

Теперь я хочу получить доступ к этим переменным в моем коротком коде (файл functions.php), но

echo $one; echo $two;

Не дает выхода.

Есть идеи?

Share
  1. Метаданные сохраняются в таблице postmeta, и для их получения вы можете использоватьget_post_meta($post_id,'meta_key_name',true);

    так что в вашей функции шорткода глобируйте объект $post и получите такое значение

    if($something == "value") {   
         global $post; 
         $one = get_post_meta($post->ID,'value_name'true);
         $two = get_post_meta($post->ID,'value2_name'true);
    }
    
    • 0
  2. Если вы не запускаете эти эхо-сигналы из функции через page.php, функции ничего не получат от этих глобальных переменных, потому что они настраиваются после запуска functions.php.

    Попробуй это:

    в functions.php:

    function show_me_that_stuff() {
        global $one, $two;
        echo $one;
        echo $two;
    }
    

    затем в page.php:

    if($something == "value") {   
         global $one, $two; 
         $one = 120;
         $two = 240;
    }
    show_me_that_stuff();
    

    Теперь он должен выводить 120240.

    • 0
  3. Конкретные значения публикации, как показано, должны быть post_meta, как продемонстрировано Bainternet. Нет вопросов.

    Однако, если это не зависит от страницы и является действительно глобальным, у вас также есть таблица wp_options со специальным API для работы с этим.

    • 0

Оставить ответ

You must login to add an answer.