Skip to content

Fix followers page and add filtering, sorting, and pagination#600

Merged
akirk merged 1 commit intomainfrom
fix/followers-page-improvements
Mar 24, 2026
Merged

Fix followers page and add filtering, sorting, and pagination#600
akirk merged 1 commit intomainfrom
fix/followers-page-improvements

Conversation

@akirk
Copy link
Owner

@akirk akirk commented Mar 24, 2026

Summary

  • Fix compatibility with ActivityPub plugin's updated Followers API (Followers::query() returns WP_Post objects now, not Actor objects)
  • Add filter controls: All | Following | Not Following (replaces old ?mutual link, with backwards compat)
  • Add sort controls: Newest | Oldest | Name
  • Add pagination (20 per page) with paginate_links()
  • Add loading="lazy" to avatar images
  • Only do expensive actor conversion on the current page's 20 followers, not all
  • Only classify followers (for Following/Not Following filter) when a filter is active

Test plan

  • Visit /friends/followers/ — should show 20 followers per page with pagination
  • Click filter links (All / Following / Not Following) and verify correct filtering
  • Click sort links (Newest / Oldest / Name) and verify correct ordering
  • Verify filters and sorts combine with pagination (e.g. ?filter=not-following&sort=name&fpage=2)
  • Verify ?mutual still works (backwards compat → redirects to Following filter)
  • Check avatars lazy-load via browser DevTools Network tab

Test on WordPress Playground:
https://playground.wordpress.net/#{%22steps%22:[{%22step%22:%22installPlugin%22,%22pluginData%22:{%22resource%22:%22git:directory%22,%22url%22:%22https://github.com/akirk/friends%22,%22ref%22:%22fix/followers-page-improvements%22,%22refType%22:%22branch%22},%22options%22:{%22activate%22:true}}]}

- Fix compatibility with ActivityPub plugin's updated Followers API:
  use Followers::query() instead of deprecated get_followers_with_count(),
  convert WP_Post objects to Actors via Remote_Actors::get_actor()
  before calling to_array()
- Replace deprecated count_followers() with Followers::count()
- Add filter controls: All, Following, Not Following (replaces ?mutual)
- Add sort controls: Newest, Oldest, Name
- Add pagination (20 per page) to avoid loading all followers at once
- Add loading="lazy" to avatar images
- Only classify followers when filter is active (skip on default "All")
- Only convert WP_Posts to Actors for the current page (not all followers)
@github-actions
Copy link

Test this PR in WordPress Playground

You can test this pull request directly in WordPress Playground:

Launch WordPress Playground

This will install and activate the plugin with the changes from this PR.

@akirk akirk merged commit 27e74bd into main Mar 24, 2026
25 checks passed
@akirk akirk deleted the fix/followers-page-improvements branch March 24, 2026 12:32
@akirk akirk mentioned this pull request Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant