Per Post Language Security & Risk Analysis

wordpress.org/plugins/per-post-language

This plugin allows the user to set the blog language per post or page while having a default blog language.

200 active installs v1.3 PHP + WP 4.0.0+ Updated May 9, 2016
languagelanguagesmultilanguagemultilingualppl
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Per Post Language Safe to Use in 2026?

Generally Safe

Score 85/100

Per Post Language has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 9yr ago
Risk Assessment

The "per-post-language" v1.3 plugin exhibits a generally good security posture based on the provided static analysis. The absence of AJAX handlers, REST API routes, shortcodes, and cron events significantly limits the plugin's attack surface. The code signals also indicate a positive trend, with all SQL queries utilizing prepared statements and a substantial number of capability checks in place. The presence of a nonce check further strengthens its security by helping to prevent cross-site request forgery attacks.

However, the most significant concern lies in the output escaping. With only 13% of the 16 total outputs properly escaped, there is a high risk of cross-site scripting (XSS) vulnerabilities. Unsanitized user input that is later displayed to other users without proper encoding can lead to malicious scripts being injected into the website. The vulnerability history being clean is a positive indicator, but it does not negate the immediate risk posed by the inadequate output escaping.

In conclusion, while the plugin has a small attack surface and implements some good security practices like prepared statements and capability checks, the widespread lack of output escaping is a critical weakness that needs immediate attention. The clean vulnerability history is a positive sign, suggesting responsible development, but the current code presents a clear and present danger of XSS vulnerabilities.

Key Concerns

  • Low percentage of properly escaped output
Vulnerabilities
None known

Per Post Language Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

Per Post Language Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
14
2 escaped
Nonce Checks
1
Capability Checks
2
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

13% escaped16 total outputs
Attack Surface

Per Post Language Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 6
actionsetup_themeppl_core.php:57
actionsave_postppl_core.php:68
actionadd_meta_boxes_postppl_core.php:136
actionadd_meta_boxes_pageppl_core.php:144
actioninitppl_core.php:150
actionadmin_menuppl_settings_page.php:31
Maintenance & Trust

Per Post Language Maintenance & Trust

Maintenance Signals

WordPress version tested4.5.33
Last updatedMay 9, 2016
PHP min version
Downloads5K

Community Trust

Rating98/100
Number of ratings9
Active installs200
Developer Profile

Per Post Language Developer Profile

Fahad Alduraibi

2 plugins · 2K total installs

84
trust score
Avg Security Score
85/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect Per Post Language

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

HTML / DOM Fingerprints

Data Attributes
name="pplPostLang"id="pplPostLang"value="rtl"onclick="pplSetDir
JS Globals
pplSetDir
FAQ

Frequently Asked Questions about Per Post Language