在PHP中输出自定义字段

时间:2013-08-09 作者:Bravo315

我是PHP的新手,请原谅我。我想以以下格式显示一些数据:

“Post name”-“自定义字段字符串(在本例中为‘Custom\\u date’)”

我目前正在使用以下PHP代码

$output .= $indent . \'<li id="item_\'.$page->ID.\'"><span>\'.apply_filters( \'the_title\', $page->post_title, get_post_meta($post->ID,\'item_\',TRUE), $current_custom_date = $page->$custom_date ) .\' - \' . $current_custom_date . \'</span>\';
标题和破折号显示得很完美。然而,自定义字段字符串只是显示“Array”,所以现在看起来是这样的。

“职位名称”-数组

如何使其正确显示custom\\u日期?正如您所看到的,我已经将get\\u post\\u meta设置为“true”,所以这不应该是问题所在。

1 个回复
SO网友:s_ha_dum

设置的第三个参数get_post_metatrue 不保证您获得字符串。该参数的作用是控制返回的数据库行数。什么时候true 您只得到一个结果,而不是数据库中所有匹配行的数组。您将获得一个值,但只有在将字符串保存到数据库时,它才会是字符串。如果您保存了一个数组,那么仍然会有一个数组。

法典中有一条关于这一点的注释:

如果使用此方法获取序列化数组,则希望$single为true以实际获取未序列化数组。如果传入false或不传入,则将有一个1的数组,索引0处的值将是序列化字符串。

http://codex.wordpress.org/Function_Reference/get_post_meta

听起来这就是正在发生的事情。与您的item_ 键是数据库中的一个数组(序列化),因此它仍然是一个数组,即使它是“单个”结果。我不能自信地告诉你如何找回它,但它应该是这样的:

$my_meta = get_post_meta($post->ID,\'item_\',TRUE);
echo $my_meta[0]; // or
echo $my_meta[\'some_key\']; 
在代码的上下文中,您不需要echo,因为您使用的是字符串,而不是打印它。

结束

相关推荐

在jQuery中,使用php变量来执行排队jQuery文件

我正在一个特定的Wordpress管理页面上加载一些jquery,jquery可以加载并正常工作,但如果存在php变量,我只需要这个jquery触发器。在php中,我只需编写一个函数并将其挂接到管理页面:我正在将jquery文件排队,即foo。包含以下jquery的js:jQuery(document).ready(function($){ $(\'#someID.some-class > a\').append(\'<div class=\"caption\"><