Make WordPress Core

Opened 9 years ago

Closed 9 years ago

#17685 closed defect (bug) (fixed)

Posts Administration Pagination/Search Bug

Reported by: JohnONolan Owned by: azaozz
Milestone: 3.2 Priority: normal
Severity: minor Version: 3.1.4
Component: Administration Keywords: has-patch dev-feedback
Focuses: Cc:


When searching through posts in the administration area, pagination is not reset when a new search term is entered.

Steps to reproduce:

  • Go to the main posts overview screen
  • Enter a search term and press enter
  • Navigate to page 3 of search results
  • Enter a new search term and press enter

Expected behaviour: You are taken to page 1 of search results for the new term

Actual behaviour: You are taken to page 3 of search results for the new term

Note: Search terms must both have sufficient results to reproduce this bug. If the first term has 3 pages of results and the 2nd term has 1 page of results then this bug doesn't appear.

Attachments (5)

17685.diff (1.7 KB) - added by greuben 9 years ago.
17685-paging.diff (1.6 KB) - added by solarissmoke 9 years ago.
17685-paging.2.diff (1.5 KB) - added by solarissmoke 9 years ago.
Simpler JS
17685-paging.3.diff (1.5 KB) - added by solarissmoke 9 years ago.
Works for all list tables
17685.2.diff (1.5 KB) - added by koopersmith 9 years ago.
Stylistic/comment tweaks.

Download all attachments as: .zip

Change History (20)

#1 @nacin
9 years ago

  • Milestone changed from Awaiting Review to 3.2

Confirmed as a 3.0 to 3.1 regression. Moving to 3.2. If not a simple patch, it'll need a punt.

#2 @solarissmoke
9 years ago

The problem is caused by the <input class="current-page" name="paged"> which is submitted along with the search query, and therefore forces the page number to be retained. This is an issue with the list-table class and so affects all list tables.

9 years ago

#3 follow-up: @greuben
9 years ago

  • Keywords has-patch added; needs-patch removed

17685.diff - a bit hacky

#4 in reply to: ↑ 3 @sterlo
9 years ago

Replying to greuben:

17685.diff - a bit hacky

Patch doesn't appear to resolve the issue.

I'm still seeing it.

  1. Add 10 posts
  2. Set post view to 5 per page
  3. Move to page 2
  4. Search for term
  5. Stays on page 2

#5 @solarissmoke
9 years ago

This needs to be fixed for more than just search - it affects all filters. For example:

  • Filter posts by category and go to page 3 of the results
  • Now filter posts by another category - you will be taken to page 3 again (assuming both categories have enough posts)

I think this needs some overhaul of how wp-list-table handles filters and paging - and probably something that will have to wait till 3.3.

#6 @azaozz
9 years ago

  • Milestone changed from 3.2 to Future Release

Agree with @solarissmoke, we would need to fix this for all filters and probably add some more logic to handle all possible combinations of filters and search results.

#7 @greuben
9 years ago

  • Keywords needs-patch added; has-patch removed

#8 @nacin
9 years ago

I have an idea for a patch.

This is a pretty bad regression and usability issue. Let's move this back to 3.2 for now.

#9 @nacin
9 years ago

What if we printed the query string on the page, and on submit (via JS), we detect to see if the query string -- other than paged -- changed? At which point we then detach the paged inputs and let the submit continue.

#10 @solarissmoke
9 years ago

  • Keywords has-patch dev-feedback added; needs-patch removed

@nacin I had a similar idea, based on using JS alone. See patch.

#11 @nacin
9 years ago

  • Milestone changed from Future Release to 3.2

I didn't consider that if the page wasn't changing, then it should be reset. That's a brilliant solution.

9 years ago

Simpler JS

9 years ago

Works for all list tables

#12 @solarissmoke
9 years ago

First pass only worked for wp-admin/edit.php, have updated it to work with any form that uses the list-table class.

Last edited 9 years ago by solarissmoke (previous) (diff)

9 years ago

Stylistic/comment tweaks.

#13 @koopersmith
9 years ago

Other than a slight tweak or two, looks great to me. Nice solution! :)

#14 @azaozz
9 years ago

Would have preferred backend/PHP solution. Perhaps force paged=1 when submitting new filter or new search?

Also we are adding another script file, queueing it, checking dependencies, etc. just for 4-5 lines of JS? Perhaps better to add it to common.js as it's used on several admin pages if we have to use JS there.

Last edited 9 years ago by azaozz (previous) (diff)

#15 @azaozz
9 years ago

  • Owner set to azaozz
  • Resolution set to fixed
  • Status changed from new to closed

In [18237]:

Fix pagination when searching or filtering, props solarissmoke, koopersmith, fixes #17685

Note: See TracTickets for help on using tickets.