【发布时间】:2011-08-27 12:14:03
【问题描述】:
我正在使用 WP Alchemy 类编写一些 WordPress 代码,并且试图将页面模板中使用的元值作为逗号分隔列表调用。然而,当 WP Alchemy Meta Boxes 将值存储到域中时,它们不会用分隔符或空格保存,所以它很像:onetwothreefourfive...
这是我目前所拥有的:
<?php $meta = get_post_meta(get_the_ID(), $custom_metabox->get_the_id(), TRUE); ?>
<li>Via: <?php foreach ($meta['g2m_via'] as $link) { ?><a href="<?php echo $link['g2m_via-link']; ?>">
<?php
$prefix = ', ';
$words = array();
$words[] = $link['g2m_via-title'];
$words = array_map("unserialize", array_unique(array_map("serialize", $words)));
for($i = 0; $i < count($words); $i++){ $fruitlist = implode(', ', $words); print_r($fruitlist); }
?></a><?php } ?></li>
$link['g2m_via-title'] 只是存储在元字段中的链接的名称,即 Link1 将是名称,google,,com 将是链接(这在这里并不重要,我有那个工作)。其他变量都在那里。 $prefix 变量什么都不做,它的目的是充当分隔符,例如: $val .= $prefix 。 '' $link['g2m_via-title']; . '';但是,它会导致:Link1,Link 1,Link 2,Link 1,Link 2,Link 3。
到目前为止,我已经得到了最接近我想要的代码:
Link1Link2Link3
但它必须是:Link1, Link2, Link3,等等,最后一个链接标题上没有逗号。
var_dump($link) 的输出:
array(2) {
["g2m_via-title"]=> string(7) "JoyStiq"
["g2m_via-link"]=> string(22) "joystiq.com";
}JoyStiq
array(2) {
["g2m_via-title"]=> string(9) "GrindGadget"
["g2m_via-link"]=> string(16) "grindgadget.com";
} GrindGadget
array(2) {
["g2m_via-title"]=> string(13) "Engadget"
["g2m_via-link"]=> string(13) "engadget.com";
} Engadget
我希望它看起来像这样 ["g2m_via-title"] 将停止复制:
array[1] {
["g2m_via-title"]=> "JoyStiq"
["g2m_via-link"]=> "joystiq.com";
}
array[2] {
["g2m_via-title"]=> "GrindGadget"
["g2m_via-link"]=> "grindgadget.com";
}
array[3] {
["g2m_via-title"]=> "Engadget"
["g2m_via-link"]=> "engadget.com";
}
我尝试过的无数其他代码中的 3 个:http://pastebin.com/wa0R8sDw。
【问题讨论】:
-
$link['g2m_via-title']的值是多少? -
$link['g2m_via-title']究竟包含什么? -
抱歉,$link['g2m_via-title'] 包含链接的名称(即链接 1)。
-
你能给出
var_dump($link);的输出吗?所以我可以知道它是如何存储的。 -
array(2) { ["g2m_via-title"]=> string(7) "JoyStiq" ["g2m_via-link"]=> string(22) "joystiq.com" } JoyStiq 数组(2) { ["g2m_via-title"]=> 字符串(9) "GrindGadget" ["g2m_via-link"]=> 字符串(16) "grindgadget.com" } GrindGadget 数组(2) { ["g2m_via-title "]=> string(13) "Engadget" ["g2m_via-link"]=> string(13) "engadget.com" } Engadget ^这就是您要找的吗?