web-dev-qa-db-fra.com

Comment afficher les données d'une table personnalisée dans une base de données wordpress?

Je veux récupérer les données d'une table personnalisée, que j'ai créées dans la base de données wordpress, et les afficher dans une page wordpress, comme des publications

Merci d'avance

1
Rasha

Voici un exemple de code qui va récupérer les données puis les afficher:

global $wpdb;
// this adds the prefix which is set by the user upon instillation of wordpress
$table_name = $wpdb->prefix . "your_table_name";
// this will get the data from your table
$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

Il est recommandé d’utiliser des noms uniques pour les variables et les fonctions. Vous pouvez donc ajouter un préfixe unique à toutes vos variables ou fonctions. IE: ($ prefix_table_name où "préfixe" serait un nom unique, tel que l’abréviation de votre thème ou de votre plugin. )

Référence - wpdb - codex

6
Kirill Fuchs

S'il vous plaît essayez ce code pour afficher tous les enregistrements de la base de données dans wordpress. Pour cela, vous devez d’abord créer un fichier.php dans votre dossier wordpress sélectionné, puis utiliser ce fichier comme modèle. Et ce code fonctionnera parfaitement Merci à tous.

<?php /* Template Name: your template name */ ?>
<?php get_header(); ?>
<table border="1">
    <tr>
     <th>ID</th>
     <th>FULL NAME</th>
     <th>BRANCH NAME</th>
     <th>E-MAIL ID</th>
     <th>Mobile Number</th>
     <th>Course</th>
     <th>Address</th>
     <th>City</th>
     <th>Zip Code</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(); ?>
1
ABHISHEK GUPTA

On dirait que vous cherchez $wpdb. Vous devrez écrire toutes vos propres fonctions et autres. Je recommande fortement de respecter les conventions de dénomination établies (telles que the_blah et get_blah, éventuellement avec un préfixe) pour faciliter la lecture et assurer la cohérence.

0
mor7ifer

Modification de la réponse de @Kirill Fuchs. Si vous utilisez ce code sur shortcode, cela peut créer un problème. Il peut afficher les sorties dans le mauvais ordre. Pour éviter le retour que j'ai utilisé au lieu de l'écho. Essayez de faire ceci sur le shortcode de cette façon:

add_shortcode('custom_db', function(){
global $wpdb;
$table_name = $wpdb->prefix . 'liveshoutbox';
// this will get the data from your table
$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>Table of clients.</h2>
                    <table>
                      <tr>
                        <th>First Name</th>
                        <th>Last Name</th>
                        <th>Email</th>
                      </tr> 
                      <tr>
                        <td>'. $f_name .'</td>
                        <td>'. $f_text .'</td>
                      </tr>
                    </table>            
                </div>';
    return $output;
} );
0
Motahar Hossain