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)