使用piklist meta box,行为奇怪

时间:2015-08-04 作者:IamLee

我正在尝试进入wordpress主题开发。我目前在使用根框架和piklist的机构工作。

我创建了一个自定义的帖子类型,我想在其中添加一个来自font awesome的图标。我希望在metabox容器内的选择框中使用更友好的方法。

有人建议我:https://github.com/tommusrhodus/FontAwesome-4.3.0-Class-Names/blob/master/array.php

我做了一些工作,选择框有更多用户友好的类名称,但是我在输出它们时遇到了困难。这是我用来输出它的代码:

    $font_awesome_icon = get_post_meta(get_the_ID(), \'font-awesome-icon\'); 
    <i class="fa <?php echo $font_awesome_icon; ?>"></i>
这是我在输出中得到的结果:

<i class="fa <br />
<b>Notice</b>:  Array to string conversion in  <b>/home/html/grg.sk/public_html/_sub/dusan/dummytest/wp-       content/themes/theme/templates/blocks/block-aboutus.php</b> on line <b>19</b><br />
Array"></i>
但是,如果我添加了带有任何属性的数组(这些属性甚至都不存在,但突然它就起作用了。我在将数组添加到错误的代码行时错误地发现了这一点…:)

$font_awesome_icon = get_post_meta(get_the_ID(), \'font-awesome-icon\',array(\'size\' => \'whatever\'));
所以,请任何人向我解释为什么这不起作用?

我也可以加入piklist中的线程,但我不确定这是否允许。

2 个回复
最合适的回答,由SO网友:sbruner 整理而成

默认情况下,get\\u post\\u meta()返回一个数组。将最后一个参数设置为true以返回元数据的值。

See the codex as a reference >

您的代码应为:

$font_awesome_icon = get_post_meta(get_the_ID(), \'font-awesome-icon\', true); 

SO网友:Satish Mehta

如你所见here, font awesome类在一个数组中存储了许多值。要使用font-awesome-icon 您必须显示数组,这就是为什么您的代码

$font_awesome_icon = get_post_meta(get_the_ID(), \'font-awesome-icon\',array(\'size\' => \'whatever\'));
即使没有价值,也可以正常工作。我建议您在索引中提供适当的“fa”,以及它的值,如:

\'no-icon\'   => \'No-Icon\',
\'fa-adjust\' => \'Adjust\',
如果您尝试在不使用数组的情况下输出它,您肯定会得到数组到字符串转换的错误,因为该值既不属于字符串族,也不属于内爆。

结束

相关推荐