¿Cómo mostrar datos de una tabla personalizada en la base de datos de WordPress?

13 may 2012, 01:32:18
Vistas: 90.1K
Votos: 3

Quiero recuperar datos de una tabla personalizada que he creado dentro de la base de datos de WordPress y mostrarlos en una página de WordPress, al igual que las entradas.

Gracias de antemano

0
Todas las respuestas a la pregunta 4
0

Aquí hay un ejemplo de código que obtendrá los datos y luego los mostrará:

    global $wpdb;
    // esto agrega el prefijo que es configurado por el usuario durante la instalación de WordPress
    $table_name = $wpdb->prefix . "nombre_de_tu_tabla";
    // esto obtendrá los datos de tu tabla
    $retrieve_data = $wpdb->get_results( "SELECT * FROM $table_name" );
?>
<ul>
    foreach ($retrieve_data as $retrieved_data){ ?>
        <li><?php echo $retrieved_data->nombre_de_columna;?></li>
        <li><?php echo $retrieved_data->otra_columna;?></li>
        <li><?php echo $retrieved_data->tantas_columnas_como_tengas;?></li>
    <?php 
        }
    ?>
</ul>
<?php

Es una buena práctica usar nombres únicos para variables y funciones, por lo que quizá quieras agregar un prefijo único a todas tus variables o funciones, EJ: ($prefijo_nombre_tabla donde "prefijo" sería algo único como la abreviación de tu tema o plugin.)

Referencia - wpdb - codex

9 jun 2012 03:43:12
1

Prueba este código para mostrar todos los registros de la base de datos en WordPress. Primero necesitas crear un archivo.php dentro de la carpeta de WordPress que hayas seleccionado y luego usar este archivo como plantilla. Este código funcionará perfectamente. Gracias a todos.

<?php /* Nombre de la plantilla: tu nombre de plantilla */ ?>
<?php get_header(); ?>
<table border="1">
    <tr>
     <th>ID</th>
     <th>NOMBRE COMPLETO</th>
     <th>NOMBRE DE SUCURSAL</th>
     <th>CORREO ELECTRÓNICO</th>
     <th>NÚMERO DE TELÉFONO</th>
     <th>CURSO</th>
     <th>DIRECCIÓN</th>
     <th>CIUDAD</th>
     <th>CÓDIGO POSTAL</th>
    </tr>

      <?php

        global $wpdb;
        $result = $wpdb->get_results( "SELECT * FROM wp_example");
        foreach ( $result as $print )   { ?>
          <tr>
                  <td>  <?php echo $print->id; ?> </td>
                  <td><?php echo $print->firstname; ?> </td>
                  <td> <?php echo $print->branch ; ?> </td>
                  <td> <?php echo $print->email; ?> </td>
                  <td><?php echo $print->mobile; ?> </td>
                  <td> <?php echo $print->course; ?> </td>
                  <td> <?php echo $print->address; ?> </td>
                  <td><?php echo $print->city; ?> </td>
                  <td> <?php echo $print->zip ; ?> </td>
          </tr>
            <?php }
      ?>

</table>
<?php get_header(); ?>
18 ene 2017 13:43:41
Comentarios

Eso no responde a la pregunta. Por favor, léela de nuevo.

kaiser kaiser
18 ene 2017 14:09:34
0

Parece que estás buscando $wpdb. Necesitarás escribir todas tus propias funciones y demás. Recomiendo encarecidamente seguir las convenciones de nomenclatura establecidas (cosas como the_blah y get_blah, tal vez con un prefijo) para facilitar la legibilidad y mantener la consistencia.

13 may 2012 02:04:57
2

Modificación de la respuesta de @Kirill Fuchs. Si usas este código en un shortcode, puede crear un problema. Podría mostrar las salidas en un orden incorrecto. Para evitarlo, usé return en lugar de echo. Intenta hacer esto en el shortcode de la siguiente manera:

add_shortcode('custom_db', function(){
global $wpdb;
$table_name = $wpdb->prefix . 'liveshoutbox';
// esto obtendrá los datos de tu tabla
$retrieve_data = $wpdb->get_results( "SELECT * FROM $table_name" );
foreach ($retrieve_data as $retrieved_data){ 
    $f_name = $retrieved_data->column_name;
    $f_text = $retrieved_data->another_column_name;
}
    $output = '<div class="wrap">
                    <h2>Tabla de clientes.</h2>
                    <table>
                      <tr>
                        <th>Nombre</th>
                        <th>Apellido</th>
                        <th>Email</th>
                      </tr> 
                      <tr>
                        <td>'. $f_name .'</td>
                        <td>'. $f_text .'</td>
                      </tr>
                    </table>            
                </div>';
    return $output;
} );
3 may 2018 21:26:18
Comentarios

También puedes usar el buffer de salida para recolectar el HTML y devolverlo. Usa ob_start(); al principio y devuelve ob_get_clean();

Bikash Waiba Bikash Waiba
4 may 2018 08:59:28

No es necesario escribir muchas líneas entre comillas simples.

Bikash Waiba Bikash Waiba
4 may 2018 09:00:29