将多个 XML 字段解析为元数据(自定义字段)
Parsing multiple XML fields into meta data (custom fields)
我正在尝试找到正确的 PHP 代码以从 XML 提要中创建多个元值。
目前我正在从插件的另一部分复制代码开始。它确实创建了第一个自定义字段,但我需要它为接下来的 5 XML 个字段做同样的事情。
XML 片段:
<menu_items type="array">
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18780</id>
<name>Gyro Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">false</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18781</id>
<name>Chicken Shawerma Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">false</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18782</id>
<name>Spicy Chicken Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">false</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18783</id>
<name>Falafel Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">true</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18784</id>
<name>Baklava</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">true</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
</menu_items>
我需要将每个字段放入它自己的自定义字段中。
插件中的当前代码:
$post_meta = array();
if(!empty($vendor->menu_items)){
$i = 0;
foreach($vendor->menu_items->menu_item->name as $menu_item_name){
$post_meta["marcato_menu_name_".$i] = $menu_item_name;
$i++;
}
}
single custom field showing up on WordPress, but I need 5 different ones
我正在学习PHP所以请原谅我的新手..在此先感谢您的帮助!
您可以循环 $vendor->menu_items->menu_item
并根据 menu_item 使用 name
属性.
而不是循环 $vendor->menu_items->menu_item->name
$menu_item->name
是 SimpleXMLElement 类型,因此您可以将其转换为 (string)
。
if(!empty($vendor->menu_items)){
$i = 0;
foreach($vendor->menu_items->menu_item as $menu_item){
$post_meta["marcato_menu_name_".$i] = (string)$menu_item->name;
$i++;
}
}
我正在尝试找到正确的 PHP 代码以从 XML 提要中创建多个元值。
目前我正在从插件的另一部分复制代码开始。它确实创建了第一个自定义字段,但我需要它为接下来的 5 XML 个字段做同样的事情。
XML 片段:
<menu_items type="array">
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18780</id>
<name>Gyro Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">false</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18781</id>
<name>Chicken Shawerma Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">false</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18782</id>
<name>Spicy Chicken Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">false</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18783</id>
<name>Falafel Wrap</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">true</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
<menu_item>
<description/>
<gluten_free type="boolean">false</gluten_free>
<id type="integer">18784</id>
<name>Baklava</name>
<vegan type="boolean">false</vegan>
<vegetarian type="boolean">true</vegetarian>
<formatted_price>Min: .00 Max: [=11=].00</formatted_price>
</menu_item>
</menu_items>
我需要将每个字段放入它自己的自定义字段中。
插件中的当前代码:
$post_meta = array();
if(!empty($vendor->menu_items)){
$i = 0;
foreach($vendor->menu_items->menu_item->name as $menu_item_name){
$post_meta["marcato_menu_name_".$i] = $menu_item_name;
$i++;
}
}
single custom field showing up on WordPress, but I need 5 different ones
我正在学习PHP所以请原谅我的新手..在此先感谢您的帮助!
您可以循环 $vendor->menu_items->menu_item
并根据 menu_item 使用 name
属性.
$vendor->menu_items->menu_item->name
$menu_item->name
是 SimpleXMLElement 类型,因此您可以将其转换为 (string)
。
if(!empty($vendor->menu_items)){
$i = 0;
foreach($vendor->menu_items->menu_item as $menu_item){
$post_meta["marcato_menu_name_".$i] = (string)$menu_item->name;
$i++;
}
}