humanmade / hm-redirects
Simple plugin for handling WordPress redirects in a scalable manner.
Installs: 169 756
Dependents: 2
Suggesters: 0
Security: 0
Stars: 29
Watchers: 24
Forks: 11
Open Issues: 24
Type:wordpress-plugin
Requires
- php: >=5.4
- composer/installers: ~1.0
Requires (Dev)
- humanmade/coding-standards: ^0.5.0
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-10-30 15:04:04 UTC
README
Allows to redirect one path to another path on the same domain.
Architecture
Redirects are stored as a custom post type and use the following fields:
post_name
to store the md5 hash of the From path. This column is used because it is indexed, and allows fast queries.md5
is used to simplify the storage.post_title
to store the From path.post_excerpt
to store the the To path.
Tips
This plugin uses wp_safe_redirect()
to redirect. You will have to whitelist your redirect target domains using WordPress' allowed_redirect_hosts
filter, otherwise the redirect will not work.
One way to get a list of redirect target domains is to run the WP-CLI command: wp hm-redirects find-domains
. Another is to add them dynamically just-in-time using the filter hm_redirects_matched_redirect
.
Attributions
Props for the data storage approach to VIP's WPCOM Legacy Redirector.
Contributing
Before tagging a release
- Update the version string on line 8.
Running tests
Currently the plugin's automated tests run against PHP 7.4 and WP 5.8. PHPUnit doesn't need to be installed, however:
composer install
docker run --rm -e WP_VERSION=5.8 -v $PWD:/code humanmade/plugin-tester