为什么显示的是文本,而不是文本区域字段本身?

时间:2015-03-08 作者:Leona grey

所以,我在元框中有一个文本区域作为字段,如果我这样做,它可以正常工作:

 $meta = get_post_meta($post->ID, \'twitter_embed\', true);  
echo \'<table class="form-table">\';   
   echo \'<tr>
    <th><label for="twitter_embed">Twitter Embed</label></th>
    <td><textarea name="twitter_embed" id="twitter_embed" cols="60" rows="4">\'. 
   $meta 
    . \'</textarea>
    <span class="description">Use to embed tweets on your post.</span></td>
    </tr>\';
它将显示$meta 在文本区域中。但是,如果$meta为空,我想使用get_option. 执行此操作时(请参见下文),它会显示get_option 元框区域中的文本,但根本不显示textarea字段。So it displays the text not in the textarea. 为什么会这样?似乎不显示文本区域的代码:

$meta = get_post_meta($post->ID, \'twitter_embed\', true);  
  echo \'<table class="form-table">\';           
  echo \'<tr>
    <th><label for="twitter_embed">Twitter Embed</label></th>
    <td><textarea name="twitter_embed" id="twitter_embed" cols="60" rows="4">\'. 
    ($meta ==  \'\') ? get_option(\'my_option_name\') : $meta 
    . \'</textarea>
    <span class="description">Use to embed tweets on your post.</span></td>
    </tr>\';

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

这是一个PHP语法问题,不能在echo中放置三元运算符。将值指定给$meta 在一行中:

$meta = \'\' == get_post_meta($post->ID, \'twitter_embed\', true) ? get_option(\'my_option_name\') : get_post_meta($post->ID, \'twitter_embed\', true);

结束

相关推荐

将jQuery日期选择器添加到自定义发布类型Metabox

我已经创建了一个自定义的post类型元数据库,它可以很好地显示和运行。问题在于日期选择器似乎不起作用,当单击元框时,您可以输入它,而不是出现日期选择器。另一方面,我的脚本似乎都无法工作,尽管它们都已加载。编写加载所有脚本的代码。//Making jQuery Google API function modify_jquery() { if (!is_admin()) { // comment out the next two lines to load th