2017-01-08 56 views
1

我想要实现的是: 我有一个自定义表有几行。 每行都是一个与页面链接的项目(该行的“页面”字段是页面的名称),这样当我打开一个页面时,我可以获得链接到该页面的所有项目。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

如果你想获得多个数据,那么你应该使用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; ?>使用它。

希望这会有所帮助!

+0

谢谢!像魅力一样工作! – wtfatty