Come visualizzare i dati da una tabella personalizzata nel database di WordPress?

13 mag 2012, 01:32:18
Visualizzazioni: 90.1K
Voti: 3

Voglio recuperare i dati da una tabella personalizzata che ho creato all'interno del database di WordPress e visualizzarli in una pagina WordPress, come i post

Grazie in anticipo

0
Tutte le risposte alla domanda 4
0

Ecco un esempio di codice che recupera i dati e poi li visualizza:

    global $wpdb;
    // questo aggiunge il prefisso impostato dall'utente durante l'installazione di WordPress
    $table_name = $wpdb->prefix . "your_table_name";
    // questo recupera i dati dalla tua tabella
    $retrieve_data = $wpdb->get_results( "SELECT * FROM $table_name" );
?>
<ul>
    foreach ($retrieve_data as $retrieved_data){ ?>
        <li><?php echo $retrieved_data->column_name;?></li>
        <li><?php echo $retrieved_data->another_column_name;?></li>
        <li><?php echo $retrieved_data->as_many_columns_as_you_have;?></li>
    <?php 
        }
    ?>
</ul>
<?php

È buona pratica utilizzare nomi univoci per variabili e funzioni, quindi potresti voler aggiungere un prefisso univoco a tutte le tue variabili o funzioni, ad esempio: ($prefix_table_name dove "prefix" sarebbe qualcosa di univoco come l'abbreviazione del tuo tema o plugin.)

Riferimento - wpdb - codex

9 giu 2012 03:43:12
1

Prova questo codice per visualizzare tutti i record dal database in WordPress. Per prima cosa è necessario creare un file.php all'interno della cartella WordPress selezionata e poi utilizzare questo file come template. Questo codice funzionerà perfettamente. Grazie a tutti.

<?php /* Template Name: nome del tuo template */ ?>
<?php get_header(); ?>
<table border="1">
    <tr>
     <th>ID</th>
     <th>NOME COMPLETO</th>
     <th>NOME FILIALE</th>
     <th>E-MAIL</th>
     <th>Numero di Telefono</th>
     <th>Corso</th>
     <th>Indirizzo</th>
     <th>Città</th>
     <th>CAP</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 gen 2017 13:43:41
Commenti

Ciò non risponde alla domanda. Per favore, rileggila.

kaiser kaiser
18 gen 2017 14:09:34
0

Sembra che tu stia cercando $wpdb. Dovrai scrivere tutte le tue funzioni e simili. Raccomando vivamente di attenersi alle convenzioni di denominazione stabilite (cose come the_blah e get_blah, magari con un prefisso) per facilitare la leggibilità e per coerenza.

13 mag 2012 02:04:57
2

Modifica della risposta di @Kirill Fuchs. Se usi questo codice in uno shortcode, potrebbe creare un problema. Potrebbe visualizzare gli output in ordine errato. Per evitarlo ho usato return invece di echo. Prova a farlo nello shortcode in questo modo:

add_shortcode('custom_db', function(){
global $wpdb;
$table_name = $wpdb->prefix . 'liveshoutbox';
// questo otterrà i dati dalla tua tabella
$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>Tabella dei clienti.</h2>
                    <table>
                      <tr>
                        <th>Nome</th>
                        <th>Cognome</th>
                        <th>Email</th>
                      </tr> 
                      <tr>
                        <td>'. $f_name .'</td>
                        <td>'. $f_text .'</td>
                      </tr>
                    </table>            
                </div>';
    return $output;
} );
3 mag 2018 21:26:18
Commenti

Puoi anche utilizzare il buffer di output per raccogliere l'html da restituire. Usa ob_start(); all'inizio e return ob_get_clean();

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

Non è necessario scrivere molte righe tra apici singoli.

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