wp-hashids
This plugin provides a Hashids implementation for WordPress., (*1)
Requirements
WordPress 4.7 or greater, PHP 5.6 or greater and Composer., (*2)
Installation
Install using Composer:, (*3)
$ composer require ssnepenthe/wp-hashids
Usage
Once the plugin is activated, browse to wp-admin > settings > permalinks
and set a custom structure which contains the tag %hashid%
., (*4)
If you need to manually interact with the underlying Hashids instance for some reason, it can be accessed by calling _wph_instance( 'hashids' )
., (*5)
Configuration
Sensible defaults are automatically set for you., (*6)
If you wish to set custom values, there are two methods for doing so:, (*7)
1) Define any number of WP_HASHIDS_*
constants (preferred)
2) Browse to wp-admin > settings > wp hashids
and set the values via the provided interface., (*8)
The following constants can be used for configuration:, (*9)
-
WP_HASHIDS_ALPHABET
- valid options are lower
, upper
, lowerupper
, lowernumber
, uppernumber
, and all
. You will need to manually flush rewrite rules after changing this constant by going to settings > permalinks
.
-
WP_HASHIDS_MIN_LENGTH
- can be any integer >= 0.
-
WP_HASHIDS_SALT
- should be a unique string to ensure hashids are unique to your site.
Keep in mind that any changes to the plugin settings will immediately change all post URLs that use the %hashid%
rewrite tag, and as such, should only be modified immediately after plugin activation., (*10)
If all three constants are configured, the WP Hashids
settings page will not be visible., (*11)
Considerations
As mentioned previously, changing any config value will result in all of your post URLs changing. This should only be done immediately after installing the plugin., (*12)
This plugin provides a method of obfuscating post IDs in URLs, however it makes no attempt to hide them anywhere else. If you need to completely mask post IDs from your users, look elsewhere., (*13)
Custom post types are supported but you will need to configure a custom permastruct using add_permastruct()
if you want to remove the post name from the URL., (*14)
Warning
HASHIDS ONLY PROVIDES OBFUSCATION OF IDS IN PERMALINKS., (*15)
IT DOES NOT PROVIDE ENCRYPTION AND IT IS NOT SECURE., (*16)
YOU SHOULD ASSUME THAT YOUR SALT CAN AND WILL BE READ BY ANYONE THAT CAN VIEW YOUR SITE!, (*17)
FOR THIS REASON, YOU SHOULD NOT (RE)USE ANY SENSITIVE INFORMATION (LIKE PASSWORDS OR CORE SALTS) FOR YOUR HASHIDS SALT., (*18)
YOUR SALT SHOULD BE A UNIQUE VALUE THAT IS ONLY USED BY THIS PLUGIN., (*19)
FOR MORE INFORMATION, CHECK THE LINKS LISTED HERE., (*20)