[wp-trac] [WordPress Trac] #29972: Split pagination calculations and HTML in paginate_links

WordPress Trac noreply at wordpress.org
Wed Oct 15 04:22:29 UTC 2014


#29972: Split pagination calculations and HTML in paginate_links
-------------------------+-----------------------------
 Reporter:  dylanj       |      Owner:
     Type:  enhancement  |     Status:  new
 Priority:  normal       |  Milestone:  Awaiting Review
Component:  General      |    Version:  4.0
 Severity:  normal       |   Keywords:
  Focuses:               |
-------------------------+-----------------------------
 The current implementation of paginate_links has a number of issues. It
 has been improved significantly in the latest version, however there is
 still room for more improvements.

 Currently, the function forces you to use the HTML as it has been
 returned. If you want to add a class onto something, there is no easy way
 to do it - you're stuck with the defaults as they are hard-coded.

 The first step towards fixing this is to split the pagination calculations
 from the HTML. Sort out what's going to go where, and then go and build
 the HTML and return it.

 My reasoning is below, take a look and see what you think. I'm not
 necessarily advocating my particular fix, but I believe at the very least
 it needs some discussion.

 This change will make it easier to create features such as custom classes
 for elements, and will make the code easier to read and maintain.

 Also this is my first time creating a ticket on WordPress Trac, so go easy
 :)

 '''Return raw array data'''

 If you want to write your own completely custom HTML, you currently have
 to either copy+paste the function and modify it to suit your needs, or
 write a whole new one from scratch. The function should be able to return
 an array containing these values for each pagination item:

 - type (next/prev/dots/page)
 - link (where the item links to)
 - text (the text to be displayed within the link)
 - active (so you can apply your own active class)

 This allows for more flexible use of the function within the template.

 '''Customize the default output'''

 Sometimes, you might just want to add an extra class to an item or two.
 Now, you could add these features to the current code, but the section for
 the active element is split from the normal elements which means you'd
 have to duplicate code to do it.

 '''Change the currently selected page element'''

 I've added a new arg 'link_current' so you can change the default element
 of the selected page to an A tag instead of the SPAN. I needed this for
 our specific design, but thought other people might find it useful as
 well.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/29972>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list