Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance: Improve pagination logic in core/query-pagination-previous block #68070

Open
wants to merge 1 commit into
base: trunk
Choose a base branch
from

Conversation

yogeshbhutkar
Copy link
Contributor

Fixes: #67748

What?

The Query Pagination Previous block is displayed even when a user navigates beyond the range of available query results. Since no results are shown in such cases, displaying this block is unnecessary and can be confusing. This PR addresses the issue by ensuring the Query Pagination Previous block is hidden when the query has no results, improving user experience and interface clarity.

How?

The logic has been updated to render the block only when the page number is greater than 1 and less than or equal to the total number of pages, ensuring accurate and appropriate visibility.

Testing Instructions

  1. Add a query loop block.
  2. Make sure to add Query Pagination block which contains Query Pagination Previous Block as well.
  3. Enter a page range that lies outside the query range.
  4. Observe that the block Query Pagination Previous is not rendered.

Screencast

Screen.Recording.2024-12-10.at.10.47.05.AM.mov

Screenshots

Before:
Screenshot 2024-12-10 at 11 42 10 AM

After:
Screenshot 2024-12-10 at 11 41 08 AM

@yogeshbhutkar yogeshbhutkar marked this pull request as ready for review December 18, 2024 04:53
Copy link

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: yogeshbhutkar <[email protected]>
Co-authored-by: michalczaplinski <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@yogeshbhutkar
Copy link
Contributor Author

Requesting for a re-review from @ntsekouras as a follow-up to this closed PR.

@ntsekouras ntsekouras added [Type] Bug An existing feature does not function as intended [Block] Query Pagination Affects the Query Pagination Block - used for pagination within the Query Loop Block labels Dec 18, 2024
@@ -1,4 +1,5 @@
<?php

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should remove this extra line.

} elseif ( 1 < $page ) {

$total_pages = $max_page;
if ( ! isset( $block->context['query']['inherit'] ) || ! $block->context['query']['inherit'] ) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason I suggested to move this block here is that we could avoid this if condition, since it's actually the else from above.

I know realized that we have an elseif ( 1 !== $page ), so I guess we could change the elseif to else, and inside that else block handle the if ( 1 !== $page ).

This way we wouldn't also need the temp assignment $total_pages = $max_page;

I hope I didn't confuse you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Query Pagination Affects the Query Pagination Block - used for pagination within the Query Loop Block [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Query Pagination Previous block appears incorrectly when navigating to page outside of the query's range.
2 participants