๐Ÿ“ฆ EqualifyEverything / equalify-wp-integration

๐Ÿ“„ README.md ยท 89 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89<img src="logo.svg" alt="Equalify Logo" width="300">

# Equalify WordPress Integration

Connect your WordPress site to Equalify to keep your accessibility audits in sync with your latest content.

- **Contributors:** azdak
- **Requires WordPress:** 5.0+
- **Tested up to:** 6.7
- **Stable tag:** 1.0.0
- **License:** [GPLv2 or later](http://www.gnu.org/licenses/gpl-2.0.html)

## Description

Equalify WordPress Integration generates a public CSV feed of all URLs on your WordPress site โ€” posts, pages, custom post types, and optionally PDF files from your media library โ€” so that Equalify can always audit your most up-to-date content.

**Features:**

- Public CSV feed endpoint, protected by a secret token generated on activation.
- Admin settings page under **Settings > Equalify Integration** with a one-click copy-to-clipboard button for the feed URL (token included).
- Paged table of every URL in the feed with search, showing its type (`html` or `pdf`) and enabled/disabled status.
- Per-URL enable/disable toggle โ€” exclude specific pages or files from the feed without deleting them.
- Optional inclusion of direct PDF file URLs from the WordPress media library, controlled by a toggle in the Options section.
- DB-level pagination โ€” only the current page of URLs is loaded into memory at a time.
- Streamed CSV output โ€” posts are fetched in chunks and written directly to the response, keeping memory usage flat on large sites.
- Object cache integration โ€” count and fetch results are cached when an external object cache (Redis, Memcached) is available, with automatic invalidation whenever posts are saved, deleted, or the PDF option changes.
- Multisite compatible โ€” each subsite maintains its own independent feed, settings, and cache.

**CSV format:**

The feed outputs a two-column CSV compatible with Equalify's URL import:

```csv
url,type
https://example.com/sample-post/,html
https://example.com/wp-content/uploads/2026/01/document.pdf,pdf
```

## Installation

1. Upload the `equalify-wp-integration` folder to the `/wp-content/plugins/` directory, or install it through the WordPress Plugins screen.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Go to **Settings > Equalify Integration** to find your CSV feed URL.
4. Copy the feed URL and paste it into Equalify to begin auditing your site.

## Frequently Asked Questions

#### Where do I find the CSV feed URL?

Go to **Settings > Equalify Integration** in the WordPress admin. The feed URL โ€” including the secret token โ€” is displayed at the top of the page with a Copy to Clipboard button.

#### What URLs are included in the feed?

All published posts, pages, and public custom post types are included as `html` entries. PDF files from the media library can also be included as `pdf` entries โ€” enable this under the Options section on the settings page.

#### How do I exclude a specific URL from the feed?

On the **Settings > Equalify Integration** page, find the URL in the table and click **Disable**. Disabled URLs remain visible in the table but are excluded from the CSV feed. You can re-enable them at any time.

#### Does disabling a URL in the feed affect my site?

No. The Disable/Enable toggle only controls whether a URL appears in the Equalify CSV feed. It has no effect on the content or visibility of the page itself.

#### How do I include PDF files from my media library?

On the settings page, check the **Include direct file URLs of PDF files in the media library** option under the Options section and click **Save Options**.

## Changelog

### 1.1.0 โ€” 2026-04-08

- Secret token generated on activation; required as a query parameter to access the CSV feed.
- Disabled URLs now stored as post IDs rather than URL strings, preventing data loss on large sites and surviving permalink structure changes.
- DB-level pagination replaces PHP-side slicing โ€” only the visible page of URLs is loaded into memory.
- CSV endpoint streams posts in 200-item chunks rather than loading all posts at once.
- Object cache integration: results are cached when Redis or Memcached is available, with invalidation on post save/delete and option change.
- URL table now includes a search box; heading shows match count alongside total.
- Pagination gains First and Last buttons.
- Plugin CSS and JS now load only on the Equalify Integration settings screen.
- Multisite: plugin options and cache are scoped per subsite; uninstall cleans up all subsites.

### 1.0.0

- Initial release.
- Public CSV feed endpoint at `/?equalify_csv=1`.
- Admin settings page under Settings > Equalify Integration.
- Per-URL enable/disable toggle.
- Optional inclusion of media library PDF URLs.