IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Wordpress systeme de pagination


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 125
    Points : 92
    Points
    92
    Par défaut Wordpress systeme de pagination
    Bonjour,

    Je viens ici car j'ai un petit souci pour mettre en place un système de pagination sur une page ou j'affiche mes articles. Voilà le code de ma page actu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    if ( get_query_var( 'paged' ) ) { $paged = get_query_var( 'paged' ); }
    elseif ( get_query_var( 'page' ) ) { $paged = get_query_var( 'page' ); }
    else { $paged = 1; }
    $args = array (
    	'post_type'              => 'post',
    	'showposts'				 => -1,
    	'posts_per_page'         => 2,
    	'paged'					 => $paged
    );
    $act = new WP_Query( $args );
    ?>
    <article class="page-actu">
    	<h1>Actualités</h1>
    	<?php while ( $act->have_posts() ) { 
    		$act->the_post();	?>
    		<div class="separe-actu">
    			<h2><?php echo get_the_title(); ?></h2>
    			<p><?php echo the_content(); ?></p>
    		</div>
     
    	<?php  } ?>
    	<?php
    	if (function_exists(custom_pagination)) {
    		custom_pagination($act->max_num_pages,"",$paged);
    	}
    	?>
     
    </article>
    Voilà la fonction pour la pagination :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    function custom_pagination($numpages = '', $pagerange = '', $paged='') {
      if (empty($pagerange)) {
        $pagerange = 2;
      }
      global $paged;
      if (empty($paged)) {
        $paged = 1;
      }
      if ($numpages == '') {
        global $wp_query;
        $numpages = $wp_query->max_num_pages;
        if(!$numpages) {
            $numpages = 1;
        }
      }
      $pagination_args = array(
        'base'            => get_pagenum_link(1) . '%_%',
        'format'          => 'page/%#%',
        'total'           => $numpages,
        'current'         => $paged,
        'show_all'        => False,
        'end_size'        => 1,
        'mid_size'        => $pagerange,
        'prev_next'       => True,
        'prev_text'       => __('<'),
        'next_text'       => __('>'),
        'type'            => 'plain',
        'add_args'        => false,
        'add_fragment'    => ''
      );
     
      $paginate_links = paginate_links($pagination_args);
     
      if ($paginate_links) {
        echo "<nav class='custom-pagination'>";
          echo $paginate_links;
        echo "</nav>";
      }
    }
    Je trouve pas d'ou viens l'erreur... J'ai quatre articles sur ma page.

    Merci d'avance pour l'aide !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Et quel est le problème ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function custom_pagination($numpages = '', $pagerange = '', $paged='') {
    ...
      global $paged;
    Déjà, $paged... si c'est une variable "globale", pourquoi le mettre en paramètre de la fonction ?

    2/ $numpages, c'est :
    • le numéro de la page ? (auquel cas j'aurais mis $numpage)
    • le nombre total de pages ? (auquel cas j'aurais mis $nbrepages ou $totalpages)

    J'ai l'impression que ce n'est pas très clair...

    3/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        'show_all'        => False,
    ...
        'prev_next'       => True,
    false / true en minuscules, c'est mieux.


    4/ Si tu mettais quelques commentaires dans ton code, ça pourrait (t')aider...

    5/ Enfin (?), fais un var_dump($pagination_args); pour vérifier si les données sont correctes.
    Dernière modification par Invité ; 07/12/2016 à 11h56.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 125
    Points : 92
    Points
    92
    Par défaut
    Le souci, c'est que je n'ai qu'une seul page avec tous mes articles, et non 2 pages avec 2 articles par page.

    $numpages doit être le nombre de page total, $act->max_num_pages devrait être le nombre de page, 4 article, 2 par page, il devrait retourner 2. Le souci, c'est que $act->max_num_page est vide (0). Je ne sais pas pourquoi.

    Le code n'est pas de moi :

    http://callmenick.com/post/custom-wo...ith-pagination

    Probleme résolut, merci pour les réponses ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] systeme de pagination
    Par black-hat dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 28/07/2012, 23h19
  2. systeme de pagination
    Par bellak dans le forum Silverlight
    Réponses: 1
    Dernier message: 22/02/2009, 01h09
  3. [MySQL] resumer un systeme de pagination
    Par kayne dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/01/2009, 09h28
  4. [MySQL] systeme de pagination
    Par kayne dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/01/2009, 21h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo