Afficher les données d’une autre table (par exmple un plugin) et créer une pagination fonctionnelle – using_permalinks – paginate_links – $wpdb

J’ai besoin d’afficher dans une page WordPress les données d’un plugin [Form Maker] qui a sa propre table dans ma base de donnée.

exemple1

 

  • Je créer  un Modèle de Page Personnalisé (Custom Page Templates)
  • Je créer une page TEST , je choisis le modèle -> Template Name: TEST2
<?php
/*
Template Name: TEST2
*/ 
get_header(); ?>

<div id="primary"  role="main">

<?php
//Combien d'article je dois afficher par page
#########################################################
#########################################################
$rows_per_page = 2;
########################################################
#########################################################

$current = (intval(get_query_var('paged'))) ? intval(get_query_var('paged')) : 1;
$rows = $wpdb->get_results( 'SELECT * FROM wp_exemple_formmaker_submits WHERE group_id=35'); 
/* Connexion à la base de donnée via la classe $wpdb .
Ici par exemple je cherche dans la base de donnée du plugin la table "wp_exemple_formmaker_submits" 
avec dans le champ "group_id" tous les enregistrements qui corresponde à "35" */

// $rows est un array c'est parti pour la pagination.
global $wp_rewrite; 
$pagination_args = array(
 'base' => @add_query_arg('paged','%#%'),
 'format' => '',
 'total' => ceil(sizeof($rows)/$rows_per_page),
 'current' => $current,
 'show_all' => false,
 'type' => 'plain',
);
// Réecriture d'url
if( $wp_rewrite->using_permalinks() )
 $pagination_args['base'] = user_trailingslashit( trailingslashit( remove_query_arg('s',get_pagenum_link(1) ) ) . 'page/%#%/', 'paged');
if( !empty($wp_query->query_vars['s']) )
$pagination_args['add_args'] = array('s'=>get_query_var('s'));
$start = ($current - 1) * $rows_per_page;
$end = $start + $rows_per_page;
$end = (sizeof($rows) < $end) ? sizeof($rows) : $end;
?>
 <?php echo paginate_links($pagination_args); // Affiche la pagination ?>
 <table width="0" border="0">
      <tr>
        <th scope="col">nom</th>
        <th scope="col">groupe</th>
        <th scope="col">date</th>
      </tr>
<?php
// La boucle pour afficher les données de la table 
for ($i=$start;$i < $end ;++$i ) {
$row = $rows[$i];
?>
 <tr>
        <td><?php echo $row->element_value;?></td>
        <td><?php echo $row->group_id;?></td>
        <td><?php echo $row->date;?></td>
 </tr>
<?php } ?>
</table> 

 <?php echo paginate_links($pagination_args); // Affiche la pagination ?>
</div>

<?php get_footer(); ?>

Et voila 😉

Une réponse à “Afficher les données d’une autre table (par exmple un plugin) et créer une pagination fonctionnelle – using_permalinks – paginate_links – $wpdb

  1. Bonjour,

    Je voudrais afficher les données d’une base du plugin Form manager dans une page wordpress et apparemment votre méthode pourrait correspondre à ma recherche.

    Pourriez vous m’aider?

    Cordialement

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *