Link Whisper Free

The AI-powered internal linking plugin for WordPress. Build internal links faster, find linking opportunities, and improve SEO automatically.

v0.9.5Spencer HawsUpdated Added 30k+ installs82% rating50% support resolved
23
Score
3,882
Errors
5,303
Warnings
+0
Change

Category Scores

Security0
Repo91
Performance96
Maintainability0

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

9,185 findings

Security

3,861

11 issue groups

Maintainability

3,087

11 issue groups

I18n

2,001

3 issue groups

ERRORI18nText Domain MismatchMismatched text domain. Expected 'link-whisper' but got "wpil".1,864
Category
I18n
Occurrences
1,864
Severity
error

Sample message

Mismatched text domain. Expected 'link-whisper' but got "wpil".

WARNINGSecurityInterpolated SQL is not preparedUse placeholders and $wpdb->prepare(); found interpolated variable $ancestors at "SELECT DISTINCT ID FROM {$wpdb->posts} WHERE `post_parent` IN ($ancestors)"898
Category
Security
Occurrences
898
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable $ancestors at "SELECT DISTINCT ID FROM {$wpdb->posts} WHERE `post_parent` IN ($ancestors)"

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.892
Category
Maintainability
Occurrences
892
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().871
Category
Maintainability
Occurrences
871
Severity
warning

Sample message

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNINGMaintainabilityNon-prefixed global variableGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$a_post".778
Category
Maintainability
Occurrences
778
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$a_post".

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<b>Error:</b> [$errno] $errstr - $error_file:$error_line<br><br><hr><br><br>$out"'.599
Category
Security
Occurrences
599
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<b>Error:</b> [$errno] $errstr - $error_file:$error_line<br><br><hr><br><br>$out"'.

WARNINGSecurityDatabase parameter is not escapedUnescaped parameter $ai_anchor_sntnce_table used in $wpdb-&gt;query()\n$ai_anchor_sntnce_table assigned unsafely at line 1205.433
Category
Security
Occurrences
433
Severity
warning

Sample message

Unescaped parameter $ai_anchor_sntnce_table used in $wpdb-&gt;query()\n$ai_anchor_sntnce_table assigned unsafely at line 1205.

WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.431
Category
Security
Occurrences
431
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.419
Category
Security
Occurrences
419
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORMaintainabilityShort PHP open tag foundShort PHP opening tag used with echo; expected "<?php echo ! ..." but found "<?= ! ..."289
Category
Maintainability
Occurrences
289
Severity
error

Sample message

Short PHP opening tag used with echo; expected "<?php echo ! ..." but found "<?= ! ..."

Show 15 more
ERRORSecurityDatabase parameter is not escaped271
Category
Security
Occurrences
271
Severity
error

Sample message

Unescaped parameter $all_post_types used in $wpdb->get_col()\n$all_post_types assigned unsafely at line 1592.

ERRORSecuritySQL query is not prepared224
Category
Security
Occurrences
224
Severity
error

Sample message

Use placeholders and $wpdb->prepare(); found !

WARNINGSecurityRequest data is not unslashed223
Category
Security
Occurrences
223
Severity
warning

Sample message

$_GET[&#039;category&#039;] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGSecurityInput is not sanitized188
Category
Security
Occurrences
188
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_GET[&#039;category&#039;]

ERRORSecurityUnsafe printing function129
Category
Security
Occurrences
129
Severity
error

Sample message

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

ERRORI18nMissing Arg Domain69
Category
I18n
Occurrences
69
Severity
error

Sample message

Missing $domain parameter in function call to __().

ERRORI18nMissing Translators Comment68
Category
I18n
Occurrences
68
Severity
error

Sample message

A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.

ERRORMaintainabilityMissing direct file access protection61
Category
Maintainability
Occurrences
61
Severity
error

Sample message

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

ERRORMaintainabilitydate date52
Category
Maintainability
Occurrences
52
Severity
error

Sample message

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

ERRORMaintainabilitycurl curl setopt47
Category
Maintainability
Occurrences
47
Severity
error

Sample message

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

WARNINGSecurityInput is not validated46
Category
Security
Occurrences
46
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_FILES[&#039;csv_file&#039;][&#039;name&#039;]. Check that the array index exists before using it.

ERRORMaintainabilitystrip tags strip tags38
Category
Maintainability
Occurrences
38
Severity
error

Sample message

strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.

WARNINGMaintainabilitySchema Change24
Category
Maintainability
Occurrences
24
Severity
warning

Sample message

Attempting a database schema change is discouraged.

ERRORMaintainabilitywp function not compatible with requires wp19
Category
Maintainability
Occurrences
19
Severity
error

Sample message

Function "get_user_locale()" requires WordPress 4.7.0, but your plugin minimum supported version is WordPress 4.6.0.

WARNINGMaintainabilityerror log error log16
Category
Maintainability
Occurrences
16
Severity
warning

Sample message

error_log() found. Debug code should not normally be used in production.

Score History

First score snapshot

v0.9.5

23

Latest

Findings
9,185
Errors
3,882
Warnings
5,303
Check
2.0.0

Related Plugins

Eazy Enable Blogroll

2k+ active installs

98
Link Manager

20k+ active installs

98
Disable Author Archives

10k+ active installs

96
Events Tracker for Elementor

10k+ active installs

96