Wordpress - правильно ли обращаться к get_post_meta внутри и снаружи цикла? - PullRequest
0 голосов
/ 06 октября 2011

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

У меня есть класс для цветовой схемы, который запускается, когда к телу добавляется класс названия линейки продуктов. Например:

<body class="product-drinks">

ИЛИ

<body class="product-abcwidgets">

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

Например, если я выбрал «product-drink», тогда включалась бы таблица стилей: product-drinks.css .

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

Сначала я подумал о том, чтобы поместить некоторые данные в массив в цикле как таковой, а затем сослаться на значение массива $ page_options в теге body как таковое:

(вне цикла в заголовке)

<body class="<?php echo $page_options['pageBranding'];?>

из цикла "

$page_options = array(  

        'pageBranding'  =>  get_post_meta($post_id, 'pageBranding', true), 
        'layout'        =>  get_post_meta($post_id, 'pageLayout', true)
);

Я делаю это правильно или есть лучший способ сделать это? Или я должен ссылаться только на те мета поля, которые мне нужны, внутри цикла, а затем использовать global $ wp_query; вне цикла и получать метаданные публикации таким образом для данных, которые мне нужны для тела и таблиц стилей?

1 Ответ

1 голос
/ 06 февраля 2012

Если вам нужны данные вне цикла, я бы предложил использовать $ wp_query или глобальный $ post.

<?php global $post; ?>

Тогда вы можете назвать это как обычно

<?php $samplemeta = get_post_meta($post->ID, "your_meta_name", true); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...