Cum să afișezi date dintr-o tabelă personalizată în baza de date WordPress?

13 mai 2012, 01:32:18
Vizualizări: 90.1K
Voturi: 3

Vreau să extrag date dintr-o tabelă personalizată, pe care am creat-o în baza de date WordPress și să le afișez într-o pagină WordPress, similar cu articolele

Mulțumesc anticipat

0
Toate răspunsurile la întrebare 4
0

Iată un exemplu de cod care va prelua datele și apoi le va afișa:

    global $wpdb;
    // aceasta adaugă prefixul setat de utilizator la instalarea WordPress
    $table_name = $wpdb->prefix . "your_table_name";
    // aceasta va prelua datele din tabela ta
    $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

Este o bună practică să folosești nume unice pentru variabile și funcții, așa că poți dori să adaugi un prefix unic tuturor variabilelor sau funcțiilor tale, de exemplu: ($prefix_table_name unde "prefix" ar fi ceva unic precum abrevierea temei sau a pluginului tău.)

Referință - wpdb - codex

9 iun. 2012 03:43:12
1

Încearcă acest cod pentru a afișa toate înregistrările din baza de date în WordPress. Pentru aceasta, mai întâi trebuie să creezi un fișier.php în directorul ales din WordPress și apoi să folosești acest fișier ca șablon. Acest cod va funcționa perfect. Mulțumesc tuturor.

<?php /* Șablon: numele șablonului tău */ ?>
<?php get_header(); ?>
<table border="1">
    <tr>
     <th>ID</th>
     <th>NUME COMPLET</th>
     <th>NUMELE FILIALEI</th>
     <th>ADRESĂ E-MAIL</th>
     <th>NUMĂR DE TELEFON</th>
     <th>CURS</th>
     <th>ADRESĂ</th>
     <th>ORAȘ</th>
     <th>COD POȘTAL</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 ian. 2017 13:43:41
Comentarii

Acest lucru nu răspunde la întrebare. Te rog să o citești din nou.

kaiser kaiser
18 ian. 2017 14:09:34
0

Se pare că cauți $wpdb. Va trebui să scrii toate funcțiile tale și altele asemănătoare. Recomand cu tărie să te ții de convențiile de denumire stabilite (lucruri precum the_blah și get_blah, eventual cu un prefix) pentru ușurința citirii și pentru consistență.

13 mai 2012 02:04:57
2

Modificare a răspunsului lui @Kirill Fuchs. Dacă utilizați acest cod într-un shortcode, acest lucru poate crea o problemă. Poate afișa rezultatele în ordine greșită. Pentru a evita acest lucru am folosit return în loc de echo. Încercați să faceți acest lucru în shortcode în felul următor:

add_shortcode('custom_db', function(){
global $wpdb;
$table_name = $wpdb->prefix . 'liveshoutbox';
// aceasta va prelua datele din tabela dumneavoastră
$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>Tabel de clienți.</h2>
                    <table>
                      <tr>
                        <th>Prenume</th>
                        <th>Nume</th>
                        <th>Email</th>
                      </tr> 
                      <tr>
                        <td>'. $f_name .'</td>
                        <td>'. $f_text .'</td>
                      </tr>
                    </table>            
                </div>';
    return $output;
} );
3 mai 2018 21:26:18
Comentarii

De asemenea, poți folosi bufferul de ieșire pentru a colecta HTML-ul pentru returnare. Folosește ob_start(); la început și return ob_get_clean();

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

Nu este nevoie să scrii mai multe linii între ghilimele simple.

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