У меня есть страница с метабоксом под названием «что-то». Он может иметь два значения «значение» и «значение2».
Я использую шорткод на этой странице и хочу, чтобы он отображал какое-то значение. Проблема в том, что я не знаю, как получить доступ к глобальной переменной в шорткоде?
Пример, у меня есть это в page.php:
if($something == "value") {
global $one, $two;
$one = 120;
$two = 240;
}
Теперь я хочу получить доступ к этим переменным в моем коротком коде (файл functions.php), но
echo $one; echo $two;
Не дает выхода.
Есть идеи?
Метаданные сохраняются в таблице postmeta, и для их получения вы можете использовать
get_post_meta($post_id,'meta_key_name',true);
так что в вашей функции шорткода глобируйте объект $post и получите такое значение
на самом деле в моем случае я считаю, что не могу делать то, что хочу, используя метаданные. У меня есть изображения, сгенерированные timthumb, и на основе макета сайта я хочу изменить их размеры. И я не могу получить заданный макет страниц внутри functions.php.
Да, мой ответ больше похож на объяснение php, чем на ответ WordPress, мой плохой.
Если вы не запускаете эти эхо-сигналы из функции через page.php, функции ничего не получат от этих глобальных переменных, потому что они настраиваются после запуска functions.php.
Попробуй это:
в functions.php:
затем в page.php:
Теперь он должен выводить 120240.
Конкретные значения публикации, как показано, должны быть post_meta, как продемонстрировано Bainternet. Нет вопросов.
Однако, если это не зависит от страницы и является действительно глобальным, у вас также есть таблица wp_options со специальным API для работы с этим.