web-dev-qa-db-fra.com

Modifier le format de Paginate_Links ()

J'utilise paginate_links pour paginer les résultats d'une boucle.

Je veux styliser la pagination en utilisant des points au lieu de chiffres, mais je ne sais pas trop comment s'y prendre.

Je pourrais essayer de jouer avec les CSS mais je préférerais une méthode propre.

example.

<-                 o o o                ->

currently.

<-                 1 2 3                ->

C'est actuellement la façon dont je produis mes liens.

<?php

$big = 999999999;

$paginate_links = paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $the_query->max_num_pages,
    'prev_text'    => __('<div class="prev pull-left"><i class="icon-arrow_thin_left"></i></div>'),
    'next_text'    => __('<div class="next pull-right"><i class="icon-arrow_thin_right"></i></div>'),
    'type' => 'array',
    'n_display' => 'test'
) );

foreach ( $paginate_links as $pgl ) {
    echo "$pgl";
}

?>

En regardant la fonction de base paginate_links () dans Wordpress, je peux modifier la sortie de $ n_display avant ou après.

1
hyperdrive

Il n’existe pas de moyen propre de le faire (mais je remarque en regardant rapidement un code assez compliqué), mais $n_display est transmis bien que le formatage number_format_i18n() fonctionne a un filtre.

Pour que vous puissiez essayer quelque chose comme:

function make_number_into_dot( $number ) {
    return 'o';
}

add_filter( 'number_format_i18n', 'make_number_into_dot' );

// your pagination handling here

remove_filter( 'number_format_i18n', 'make_number_into_dot' );
0
Rarst