PHPackages                             ssnepenthe/wp-hashids - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ssnepenthe/wp-hashids

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

ssnepenthe/wp-hashids
=====================

A Hashids implementation for WordPress

0.1.5(3y ago)3251[5 issues](https://github.com/ssnepenthe/wp-hashids/issues)GPL-2.0-or-laterPHPPHP ^5.6 || ^7.0 || ^8.0

Since May 18Pushed 3y ago2 watchersCompare

[ Source](https://github.com/ssnepenthe/wp-hashids)[ Packagist](https://packagist.org/packages/ssnepenthe/wp-hashids)[ Docs](https://github.com/ssnepenthe/wp-hashids)[ RSS](/packages/ssnepenthe-wp-hashids/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (12)Versions (11)Used By (0)

wp-hashids
==========

[](#wp-hashids)

This plugin provides a [Hashids](http://hashids.org/php/) implementation for WordPress.

Requirements
------------

[](#requirements)

WordPress 4.7 or greater, PHP 5.6 or greater and Composer.

Installation
------------

[](#installation)

Install using Composer:

```
$ composer require ssnepenthe/wp-hashids

```

Usage
-----

[](#usage)

Once the plugin is activated, browse to `wp-admin > settings > permalinks` and set a custom structure which contains the tag `%hashid%`.

If you need to manually interact with the underlying Hashids instance for some reason, it can be accessed by calling `_wph_instance( 'hashids' )`.

Configuration
-------------

[](#configuration)

Sensible defaults are automatically set for you.

If you wish to set custom values, there are two methods for doing so:

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.

The following constants can be used for configuration:

- `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 &gt;= 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.

If all three constants are configured, the `WP Hashids` settings page will not be visible.

Considerations
--------------

[](#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.

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.

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.

Warning
-------

[](#warning)

**HASHIDS ONLY PROVIDES OBFUSCATION OF IDS IN PERMALINKS.**

**IT DOES NOT PROVIDE ENCRYPTION AND IT IS NOT SECURE.**

**YOU SHOULD ASSUME THAT YOUR SALT CAN AND WILL BE READ BY ANYONE THAT CAN VIEW YOUR SITE!**

**FOR THIS REASON, YOU SHOULD NOT (RE)USE ANY SENSITIVE INFORMATION (LIKE PASSWORDS OR CORE SALTS) FOR YOUR HASHIDS SALT.**

**YOUR SALT SHOULD BE A UNIQUE VALUE THAT IS ONLY USED BY THIS PLUGIN.**

**FOR MORE INFORMATION, CHECK THE LINKS LISTED [HERE](http://hashids.org/#decoding).**

###  Health Score

24

↓

LowBetter than 32% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~418 days

Recently: every ~522 days

Total

6

Last Release

1193d ago

PHP version history (2 changes)0.1.0PHP &gt;=5.6

0.1.4PHP ^5.6 || ^7.0 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/acf42baca29dd8d1ffaf61009a3000068423a84db153c5cb864ef6fde64a1b87?d=identicon)[ssnepenthe](/maintainers/ssnepenthe)

---

Top Contributors

[![ssnepenthe](https://avatars.githubusercontent.com/u/10903810?v=4)](https://github.com/ssnepenthe "ssnepenthe (64 commits)")

---

Tags

hashidsphpwordpresswordpress-plugin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ssnepenthe-wp-hashids/health.svg)

```
[![Health](https://phpackages.com/badges/ssnepenthe-wp-hashids/health.svg)](https://phpackages.com/packages/ssnepenthe-wp-hashids)
```

###  Alternatives

[vinkla/hashids

A Hashids bridge for Laravel

2.1k13.3M73](/packages/vinkla-hashids)[ashallendesign/short-url

A Laravel package for creating shortened URLs for your web apps.

1.4k1.9M4](/packages/ashallendesign-short-url)[elfsundae/laravel-hashid

A simple, elegant way to obfuscate your data by generating reversible, non-sequential, URL-safe identifiers.

415246.3k2](/packages/elfsundae-laravel-hashid)[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[pfefferle/wordpress-activitypub

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

5671.4k1](/packages/pfefferle-wordpress-activitypub)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
