Wordpress自定义表 - 从foreach循环中获取数据

时间:2017-01-08 21:30:22

标签: php wordpress foreach

我想要达到的目标是: 我有一个包含多行的自定义表。 每一行都是与页面链接的项目("页面"行的字段是页面的名称),因此当我打开页面时,我会获得链接到该页面的所有项目。

我设法获取与页面名称对应的行。但我不知道如何管理阵列。

我们的想法是将变量传递给页面模板,以便自动填充正确的数据。

global $wpdb;
$mytitle = get_the_title();

$results = $wpdb->get_row($wpdb->prepare('SELECT * FROM wp_mytable WHERE page = %s', $mytitle));

$item-list = array();

foreach ($results as $r)
{
    $item-name = $r->name;
    $item-description = $r->desc;

    $item-list = "some html code with $item-name and $item-description";
}

在页面模板中,我只会<?php echo $item-list; ?>以获取该页面的所有项目。

但它似乎不起作用。

任何帮助将不胜感激 感谢。

1 个答案:

答案 0 :(得分:1)

  

如果您想获取多个数据,则应使用get_results()   而不是get_row()

试试这段代码。

global $wpdb;
$mytitle = get_the_title();

$results = $wpdb->get_results($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'mytable WHERE page = %s', $mytitle));

$item_list = '<ul>';
foreach ($results as $r)
{
    $item_name = $r->name;
    $item_description = $r->desc;
    $item_list .= '<li>' . $item_name . ' ' . $item_description . '</li>';
}
$item_list .='</ul>';

现在$item_list保存列表HTML,以便通过将其回显为<?php echo $item_list; ?>来使用它。

希望这有帮助!