2017-01-08 5 views
1

Was ich versuche zu erreichen ist: Ich habe eine benutzerdefinierte Tabelle mit mehreren Zeilen. Jede Zeile ist ein Element, das mit einer Seite verknüpft ist (das Feld "Seite" der Zeile ist der Name einer Seite), so dass beim Öffnen einer Seite alle mit dieser Seite verknüpften Elemente angezeigt werden.Wordpress benutzerdefinierte Tabelle - Daten aus einer foreach-Schleife

Ich habe es geschafft, die Zeilen mit dem Seitennamen zu erhalten. Aber ich weiß nicht, wie man das Array verwaltet.

Die Idee ist es, die Variablen auf eine Seitenvorlage zu übergeben, um automatisch zu füllen ist mit den richtigen Daten.

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"; 
} 

In der Seitenvorlage werde ich nur <?php echo $item-list; ?>, um alle Einzelteile von dieser Seite zu bekommen.

Aber es scheint nicht zu funktionieren.

Jede Hilfe wird geschätzt.
Danke.

Antwort

1

Wenn Sie mehrere Daten erhalten möchten, dann sollten Sie get_results() statt get_row() verwenden.

diesen Code Versuchen.

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>'; 

Jetzt $item_list hält die Liste HTML, so dass es zu verwenden, indem es als <?php echo $item_list; ?> Echo.

Hoffe, das hilft!

+0

Vielen Dank! Lief wie am Schnürchen! – wtfatty

Verwandte Themen