Cómo analizar los resultados de filas de $wpdb -> get_results
Tengo lo siguiente:
$query = 'SELECT * FROM wp_pod_tbl_add_questions WHERE id LIKE '. $id;
$row = $wpdb -> get_results($query);
¿Cómo obtengo las columnas llamadas 'id' y 'name' de $row?

foreach( $wpdb->get_results("SELECT * FROM nombre_de_tu_tabla WHERE id LIKE' . $id . ';") as $key => $row) {
// cada columna en tu fila será accesible así
$mi_columna = $row->nombre_de_columna;}
Más información aquí

No estoy seguro si esta es la forma correcta. Creo que deberías guardar el resultado en una variable y usar foreach sobre esa variable, para mayor seguridad. Por ejemplo: $results = $wpdb->get_results($sql); y luego usar foreach($results as $value).

Realmente no debería importar en este caso ya que devuelve un array, un objeto o null, no debería haber riesgo de obtener un recurso que no sea "amigable" para bucles. Dicho esto, podrías necesitar iterar nuevamente para otra cosa, y si es así definitivamente deberías almacenarlo. No hagas la consulta dos veces

Para usar como un array asociativo:
$obj=[];
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_A);
foreach($rows as $row){ $obj=$row; break; }
// $obj ahora es la fila seleccionada si se encontró una coincidencia
Uso
$something = $obj['nombre_columna'];
foreach($obj as $col => $val)
echo $col . ': ' . $val . PHP_EOL . '<br />';
Para obtener otros formatos, simplemente cambia ARRAY_A
según la documentación de $wpdb->get_results()
. La respuesta de Pippin es apropiada para la mayoría de los usos con objetos.
Para usar una fila como un array indexado numéricamente
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_N);
foreach($rows as $row){ $obj=$row; break; }
//Uso
foreach($obj as $col_value) echo $col_value . ' ';
Para usar una fila en un array cuyas claves son la clave primaria de tu base de datos (a menudo una columna id
). Posiblemente más eficiente que el método de array asociativo.
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , OBJECT_K);
$obj = $rows[ $obj_id ];
//Uso
$something = $obj->column_name;
//Recuerda que también puedes iterar sobre objetos
foreach($obj as $col => $val)
echo $col . ': ' . $val . PHP_EOL;

Siempre consulta el Codex de WordPress: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Esencialmente, dada la sintaxis predeterminada, la variable $row aquí es un objeto que contiene tus resultados. Alternativamente, podrías especificar el TIPO de resultado (array numérico, array asociativo).
Asumiendo que solo hay un resultado, entonces $row->id y $row->name deberían darte la información.
Si obtienes más de un resultado, querrás recorrer las entradas en el objeto.
Si esperas solo una fila como resultado, entonces intenta usar $wpdb->get_row http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row
