【问题标题】:WordPress get_post_meta returns a string how do I access the single key valueWordPress get_post_meta 返回一个字符串我如何访问单个键值
【发布时间】:2014-12-31 23:23:54
【问题描述】:

我正在尝试修复一些代码并显示使用自定义元框设置的图像。我在 wp_postmeta 中找到了保存的数据,看起来数据保存为字符串,但我可以看到一个明显的键值对。

当我使用以下代码时...

 $imgVar = get_post_meta($post->ID, 'attachments', true);

 $testing4 = $imgVar;

 var_dump($testing4);

...我得到以下输出...

string(101) "{"my_item":[{"id":"653","fields":{"title":"mytitle","caption":"test this out"}}]}"

...这看起来像是在告诉我输出是一个包含 101 个字符的字符串,但我看到了键值和一个数组。

我想要输出的是什么,或者看起来应该是什么......

array[0](

  "my_item" => array(
         "id" => "653",
         "fields" => array(
                "title" =>"mytitle",
                "caption" => "test this out"
            ),
    )

),

有人能解释一下这个 newb 的输出:),以及是否可以将输出的内容转换为常规数组。或者,如果我可以在不切换输出的情况下访问键值“id => 653”。

谢谢。

【问题讨论】:

  • 您返回的格式是 JSON。 PHP 有内置函数,可以很好地做任何你想做的事情——比如把它变成一个数组。
  • 谢谢!这也是数据库中保存的内容,WP 是否使用 JSON 来保存数据?或者至少这就是数据库中列中数据的样子。 :)
  • 所以我想我找到了... json_decode() 对吗?
  • 是的,你可以用json_decode();把它变成一个数组:)

标签: php wordpress


【解决方案1】:

输出字符串可能是序列化的(Wordpress 更容易更高效地存储数据)。

试试:

<?php maybe_unserialize( $original ) ?>

如果您想了解更多关于此的信息,请查看:http://codex.wordpress.org/Function_Reference/maybe_unserialize

【讨论】:

    【解决方案2】:

    $var = json_decode($testing4);

    【讨论】:

      【解决方案3】:

      使用&lt;pre&gt; 标签格式化输出

      echo '<pre>' . var_dump($testing4) . '</pre>';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-26
        • 2022-11-16
        • 2016-02-17
        • 1970-01-01
        • 1970-01-01
        • 2017-08-20
        相关资源
        最近更新 更多