我有点困惑,但是如果我调用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-developer(主要是python),但我看不出这两个调用之间有什么区别。
你能解释为什么我无法将该密钥提取到变量中吗?
答案 0 :(得分:2)
两个问题:
get_post_meta的第三个参数应为true或false,而不是变量赋值。只需写下true
。
$ 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包含您要检索的元数据键的名称。我不确定为什么它在变量中,而不仅仅是函数调用中的字符串。