PHPackages                             arraypress/wp-nationalities - 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. arraypress/wp-nationalities

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

arraypress/wp-nationalities
===========================

A lightweight WordPress library for working with nationalities and demonyms.

00PHP

Since Feb 17Pushed 4mo agoCompare

[ Source](https://github.com/arraypress/wp-nationalities)[ Packagist](https://packagist.org/packages/arraypress/wp-nationalities)[ RSS](/packages/arraypress-wp-nationalities/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

WordPress Nationalities
=======================

[](#wordpress-nationalities)

A lightweight PHP library for working with nationality/demonym data in WordPress. Simple, static methods for mapping country codes to nationalities with search and formatting utilities.

Features
--------

[](#features)

- 🌍 Complete ISO 3166-1 alpha-2 mapped nationalities (250+ entries)
- 🔄 Common aliases and informal demonyms (Kiwi, Aussie, Canuck, etc.)
- 🎯 Simple static API - no instantiation needed
- 🔍 Search and validation utilities
- 🏳️ Emoji flag support

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

[](#installation)

```
composer require arraypress/wp-nationalities
```

Basic Usage
-----------

[](#basic-usage)

```
use ArrayPress\Nationalities\Nationalities;

// Get all nationalities
$nationalities = Nationalities::all();
// Returns: ['AF' => 'Afghan', 'AL' => 'Albanian', ...]

// Get nationality
$name = Nationalities::get_name( 'US' ); // "American"

// Get country code by nationality
$code = Nationalities::get_code( 'German' ); // "DE"

// Also works with aliases
$code = Nationalities::get_code( 'Kiwi' ); // "NZ"

// Check if nationality exists
if ( Nationalities::exists( 'US' ) ) {
    // Valid country code with nationality
}

// Validate and sanitize user input
$code = Nationalities::sanitize( $_POST['nationality'] ); // "US" or null
```

Formatting &amp; Rendering
--------------------------

[](#formatting--rendering)

```
// Get emoji flag
echo Nationalities::get_flag( 'US' ); // "🇺🇸"

// Format as plain string
echo Nationalities::format( 'US', true ); // "🇺🇸 American"
echo Nationalities::format( 'US', false, true ); // "American (US)"
echo Nationalities::format( 'US', true, true ); // "🇺🇸 American (US)"

// Render as HTML (for admin tables, templates)
echo Nationalities::render( 'US' ); // "🇺🇸 American" (escaped HTML)
echo Nationalities::render( 'US', true, false ); // "🇺🇸" (flag only)
echo Nationalities::render( 'US', false ); // "American" (name only)

// Returns null for empty codes
$html = Nationalities::render( '' ); // null
```

Aliases
-------

[](#aliases)

```
// Lookup by informal demonym
$code = Nationalities::get_code( 'Aussie' ); // "AU"
$code = Nationalities::get_code( 'Canuck' ); // "CA"
$code = Nationalities::get_code( 'Pinoy' );  // "PH"

// Get all aliases
$aliases = Nationalities::get_aliases();
// Returns: ['Aussie' => 'AU', 'Kiwi' => 'NZ', ...]

// Get aliases for a specific country
$aliases = Nationalities::get_aliases_for( 'PH' );
// Returns: ['Filipino', 'Filipina', 'Pinoy', 'Pinay']
```

Search
------

[](#search)

```
// Search by nationality or code
$results = Nationalities::search( 'ish' );
// Returns: ['GB' => 'British', 'DK' => 'Danish', 'FI' => 'Finnish', ...]

// Also searches aliases
$results = Nationalities::search( 'kiwi' );
// Returns: ['NZ' => 'New Zealander']

// Limit results
$results = Nationalities::search( 'an', 5 );
```

Helper Functions
----------------

[](#helper-functions)

Global functions are available for convenience:

```
// Get nationality
$name = get_nationality_name( 'US' ); // "American"

// Get emoji flag
$flag = get_nationality_flag( 'US' ); // "🇺🇸"

// Get all nationalities as code => name pairs
$options = get_nationality_options();

// Render as HTML
$html = render_nationality( 'US' ); // "🇺🇸 American"

// Sanitize user input
$code = sanitize_nationality_code( $_POST['nationality'] ); // "US" or null
```

API Reference
-------------

[](#api-reference)

MethodDescriptionReturn`all()`Get all nationalities`array``get_name($code)`Get nationality name`string``get_code($name)`Get code by nationality`?string``exists($code)`Check if exists`bool``sanitize($code)`Validate/sanitize`?string``search($term, $limit)`Search nationalities`array``format($code, $flag, $c)`Format as plain string`string``render($code, $flag, $n)`Render as HTML`?string``get_flag($code)`Get emoji flag`string``get_aliases()`Get all aliases`array``get_aliases_for($code)`Get aliases for country code`array`Requirements
------------

[](#requirements)

- PHP 7.4 or higher
- WordPress 6.0 or higher

License
-------

[](#license)

GPL-2.0-or-later

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance51

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 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.

### Community

Maintainers

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

---

Top Contributors

[![arraypress](https://avatars.githubusercontent.com/u/22668877?v=4)](https://github.com/arraypress "arraypress (2 commits)")

### Embed Badge

![Health badge](/badges/arraypress-wp-nationalities/health.svg)

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

###  Alternatives

[ichhabrecht/mask-export

Export your mask elements as extension

45218.1k](/packages/ichhabrecht-mask-export)

PHPackages © 2026

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