Как правильно вызвать get_post_meta - PullRequest
0 голосов
/ 15 декабря 2010

Я немного сбит с толку, но если я вызываю get_post_meta(get_the_ID(), "event", $single = true);, он возвращает значение для этого ключа, но если я вызываю его так:

$event_page_meta = "event";


function isEvent()
{
    return get_post_meta(get_the_ID(), $event_page_meta, $single = true);
}

, он возвращает массив всех мета.Я довольно неопытный php-разработчик (в основном, python), но я не вижу никакой разницы между этими двумя вызовами.

Можете ли вы объяснить, почему я не могу извлечь этот ключ из переменной?

1 Ответ

2 голосов
/ 15 декабря 2010

Две проблемы:

  1. Третий аргумент для get_post_meta должен быть истинным или ложным, а не присваиванием переменной. Просто напишите true.

  2. $ event_page_meta не входит в область действия функции, вам нужно либо передать его в качестве аргумента, либо сделать его глобальным.

Эфир:

function isEvent($event_page_meta) {
    return get_post_meta(get_the_ID(), $event_page_meta, true);
}

//somewhere else
$something = isEvent($event_page_meta);

Или:

function isEvent() {
    global $event_page_meta;
    return get_post_meta(get_the_ID(), $event_page_meta, true);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...