A WordPress admin utility that collects commonly generated site URLs in one place for review and testing.
- Lists author, media, category, tag, date, and custom post type archives.
- Includes search, feed, REST API, pingback, sitemap, and example 404 URLs.
- Opens generated URLs in a new tab with safe
noopener noreferrerattributes. - Paginates authors, attachments, categories, and tags at 100 items per page.
- Adds a View URLs shortcut to the plugin row on the Plugins screen.
- Provides translatable admin strings through the
autogenerated-urlstext domain.
- WordPress 5.9 or newer
- A user with the
manage_optionscapability - Docker and the
wp-envCLI for local development
- Copy the plugin to
wp-content/plugins/autogenerated-urls. - Activate Display Auto-Generated URLs from the WordPress Plugins screen.
- Click View URLs in the plugin row, or open Tools → Auto URLs.
The admin page is available at:
/wp-admin/tools.php?page=auto-generated-urls
The 404 entry is intentionally an example path that should return a 404 response. Large author, media, category, and tag collections are each independently paginated via the agud_author_page, agud_attachment_page, agud_category_page, and agud_tag_page query parameters.
The committed .wp-env.json starts WordPress with PHP 8.3 and mounts this directory as a plugin.
Start the environment:
wp-env startInstall the locked Composer development dependencies inside the CLI container:
wp-env run cli --env-cwd=wp-content/plugins/autogenerated-urls composer installWordPress is then available at http://localhost:8888. The standard wp-env administrator credentials are admin / password.
Stop the environment when finished:
wp-env stopRun the WordPress integration suite:
wp-env run tests-cli --env-cwd=wp-content/plugins/autogenerated-urls ./vendor/bin/phpunit --configuration phpunit.xml.distRun WordPress Coding Standards, PHP syntax validation, and Composer validation:
wp-env run cli --env-cwd=wp-content/plugins/autogenerated-urls ./vendor/bin/phpcs --standard=WordPress autogenerated-urls.php
wp-env run cli --env-cwd=wp-content/plugins/autogenerated-urls php -l autogenerated-urls.php
wp-env run cli --env-cwd=wp-content/plugins/autogenerated-urls composer validate --no-check-publishThe integration tests cover URL collection, pagination boundaries, invalid results, admin rendering, and the Plugins-screen shortcut.
- Fixed pagination advancing all sections at once. Author, media, category, and tag archives now paginate independently via
agud_author_page,agud_attachment_page,agud_category_page, andagud_tag_pagequery parameters. - Fixed month archive labels rendering in the wrong timezone. Date archive month names now use
gmmktime()so they display correctly regardless of the WordPress timezone setting. - Redesigned the admin page with a responsive card grid layout, showing sections side-by-side instead of one long vertical scroll.
- Added item counts to each section heading with proper pluralization.
- Added a copy-to-clipboard button next to every URL for quick sharing.
- Added a live filter search box to narrow visible URLs across all sections without reloading.
- Added a page description and improved empty-state styling.
- Removed dead code:
agud_get_archive_urls()wrapper,AGUD_TEXT_DOMAINconstant, and discouragedload_plugin_textdomain()call. - Removed stale
TODO_code-review.mdreferences from README and.gitattributes.
- Initial public release.
Display Auto-Generated URLs is licensed under the GNU General Public License v2.0 or later. See LICENSE.txt for the complete license terms.
autogenerated-urls.php— plugin registration, section collection, and admin rendering.LICENSE.txt— GNU General Public License v2.0 terms.tests/— WordPress PHPUnit integration tests.languages/autogenerated-urls.pot— translation template..wp-env.json— local WordPress environment configuration.
Regenerate the POT template from the running development environment:
wp-env run cli --env-cwd=wp-content/plugins/autogenerated-urls wp i18n make-pot . languages/autogenerated-urls.pot --domain=autogenerated-urls --allow-rootCreate language-specific .po and .mo files from the POT template and place them in languages/.