PluginProbe ʕ •ᴥ•ʔ
External Links – nofollow, noopener & new window / 2.66
External Links – nofollow, noopener & new window v2.66
2.66 0.31 0.32 0.33 0.34 0.35 1.01 1.02 1.03 1.10 1.20 1.21 1.30 1.31 1.40 1.41 1.50 1.51 1.52 1.53 1.54 1.55 1.56 1.60 1.61 1.62 1.70 1.80 1.81 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.1.0 2.1.1 2.1.2 2.1.3 2.2.0 2.3 2.32 2.35 2.40 2.42 2.43 2.45 2.46 2.47 2.48 2.50 2.51 2.55 2.56 2.57 2.58 2.59 2.60 2.61 2.62 2.63 2.64 2.65 trunk 0.10 0.11 0.12 0.20 0.21 0.30
wp-external-links / readme.txt
wp-external-links Last commit date
data 6 years ago includes 2 months ago libs 1 year ago public 1 day ago templates 1 day ago wf-flyout 3 years ago index.php 6 years ago license.txt 2 years ago readme.txt 1 day ago wp-external-links.php 1 day ago
readme.txt
360 lines
1 === External Links - nofollow, noopener & new window ===
2 Contributors: WebFactory
3 Tags: new window, new tab, external links, nofollow, noopener
4 Requires at least: 4.2
5 Tested up to: 7.0
6 Requires PHP: 7.2
7 Stable tag: 2.66
8 License: GPLv2 or later
9 License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
11 Internal links & external links manager: open in new window or tab, control nofollow, ugc, sponsored & noopener. SEO friendly.
12
13 == Description ==
14
15 **Manage all external & internal links on your site**. Control icons, nofollow, noopener, ugc (User Generated Content), sponsored and if links open in new window or new tab.
16
17 <a href="https://getwplinks.com/">WP Links</a> plugin was completely rebuilt in v2 and has lots of new features, like noopener, ugc and sponsored values for rel; font icons, internal links options and full WPMU support.
18
19 = Link Scanner - PRO feature =
20 Check every single link on your site! See if it's broken or not, if it's redirected, what's the target and rel attribute and what page exactly it's linking to. This feature is a part of the <a href="https://getwplinks.com/">WP Links PRO</a> plugin.
21
22 **Having problems with spam, bots, or AI scrapers? Have a look at our <a href="https://wordpress.org/plugins/advanced-google-recaptcha/">free Captcha plugin</a> used on over 200,000 sites.**
23
24 = Features =
25 * Manage external and internal links
26 * Open links in new window or tab
27 * Add follow or nofollow (for SEO)
28 * Add noopener and noreferrer (for security)
29 * Add ugc (User Generated Content) and sponsored values to rel (<a href="https://webmasters.googleblog.com/2019/09/evolving-nofollow-new-ways-to-identify.html">Google announcement</a>)
30 * Add link icons (FontAwesome and Dashicons)
31 * Set other attributes like title and CSS classes
32 * Scan complete page (or just posts, comments, widgets)
33 * SEO friendly
34 * Link Scanner - check all links on your site - PRO feature
35 * Exit Confirmation - protect visitors and traffic when external links are clicked - PRO feature
36 * Link Rules - create advanced link rules for chosen link groups - PRO feature
37
38 = And more... =
39 * Network Settings (WPMU support)
40 * Use template tag to apply plugin settings on specific contents
41 * Set data-attribute to change how individual links will be treated
42 * Use built-in actions and filters to implement your specific needs
43
44 = Easy to use =
45 After activating you can set all options for external and internal links on the plugins admin page.
46
47 = On the fly =
48 The plugin filters the output and changes the links on the fly. The real contents (posts, pages, widget etcetera) will not be changed in the database.
49 When deactivating the plugin, all contents will be the same as it was before.
50
51 = GDPR compatibility =
52 We are not lawyers. Please do not take any of the following as legal advice.
53 WP External Links does not track, collect or process any user data. Nothing is logged or pushed to any 3rd parties. We also don't use any 3rd party services or CDNs. Based on that, we feel it's GDPR compatible, but again, please, don't take this as legal advice.
54
55
56 **Like the plugin?** [Rate it](http://wordpress.org/support/view/plugin-reviews/wp-external-links) to support the development.
57
58 If you're having **problems with SSL or HTTPS** try our free <a href="https://wordpress.org/plugins/wp-force-ssl/">WP Force SSL</a> plugin. It's a great way to enable SSL and fix SSL problems.
59
60 == Installation ==
61
62 1. Go to **Plugins** in the Admin menu
63 1. Click on the button **Add new**
64 1. Search for **WP External Links** and click **Install Now**
65 1. Click on the **Activate plugin** link
66
67
68 == Frequently Asked Questions ==
69
70 = I want certain posts or pages to be ignored by the plugin. How? =
71
72 Just use the option "Skip pages or posts" under the tab "Exceptions".
73
74 For a more custom approach use the action `wpel_apply_settings`:
75 `add_action( 'wpel_apply_settings', function () {
76 global $post;
77 $ignored_post_ids = array( 1, 2, 4 );
78
79 if ( in_array( $post->ID, $ignored_post_ids ) ) {
80 return false;
81 }
82
83 return true;
84 }, 10 );`
85
86 Using this filter you can ignore any request, like certain category, archive etcetera.
87
88 = I want specific links to be ignored by the plugin. How? =
89
90 There's an option for ignoring links containing a certain class (under tab "Exceptions").
91
92 For a more flexible check on ignoring links you could use the filter `wpel_before_apply_link`:
93 `add_action( 'wpel_before_apply_link', function ( $link ) {
94 // ignore links with class "some-cls"
95 if ( $link->has_attr_value( 'class', 'some-cls' ) ) {
96 $link->set_ignore();
97 }
98 }, 10 );`
99
100
101 = How to create a redirect for external links? (f.e. affiliate links) =
102
103 Create redirect by using the `wpel_link` action. Add some code to functions.php of your theme, like:
104
105 `add_action( 'wpel_link', function ( $link ) {
106 // check if link is an external links
107 if ( $link->is_external() ) {
108 // get current url
109 $url = $link->get_attr( 'href' );
110
111 // set redirect url
112 $redirect_url = '//somedom.com?url='. urlencode( $url );
113 $link->set_attr( 'href', $redirect_url );
114 }
115 }, 10, 1 );`
116
117 = How to open external links in a new popup window? =
118
119 By adding this JavaScript code to your site:
120
121 `jQuery(function ($) {
122 $('a[data-wpel-link="external"]').click(function (e) {
123 // open link in popup window
124 window.open($(this).attr('href'), '_blank', 'width=800, height=600');
125
126 // stop default and other behaviour
127 e.preventDefault();
128 e.stopImmediatePropagation();
129 });
130 });`
131
132 See more information on the [window.open() method](http://www.w3schools.com/jsref/met_win_open.asp).
133
134 = How to add an confirm (or alert) when opening external links? =
135
136 Add this JavaScript code to your site:
137
138 `jQuery(function ($) {
139 $('a[data-wpel-link="external"]').click(function (e) {
140 if (!confirm('Are you sure you want to open this link?')) {
141 // cancelled
142 e.preventDefault();
143 e.stopImmediatePropagation();
144 }
145 });
146 });`
147
148 = How to open PDF files in a new window? =
149
150 Use some JavaScript code for opening PDF files in a new window:
151
152 `jQuery(function ($) {
153 $('a[href$=".pdf"]').prop('target', '_blank');
154 });`
155
156 = How to set another icon for secure sites (using https)? =
157
158 Use some CSS style to change the icon for secure sites using https:
159
160 `a[href^="https"] .wpel-icon:before {
161 content: "\f023" !important;
162 }`
163
164 The code `\f023` refers to a dashicon or font awesome icon.
165
166 = I am a plugin developer and my plugin conflicts with WPEL. How can I solve the problem? =
167
168 If your plugin contains links it might be filtered by the WPEL plugin as well, causing a conflict.
169 Here are some suggestions on solving the problem:
170
171 1. Add `data-wpel-link="ignore"` to links that need to be ignored by WPEL plugin
172 1. Use `wpel_before_apply_link`-action to ignore your links (f.e. containing certain class or data-attribute)
173 1. Use `wpel_apply_settings`-filter to ignore complete post, pages, categories etc
174
175 = How can I report security bugs? =
176
177 You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. [Report a security vulnerability.](https://patchstack.com/database/vdp/wp-external-links)
178
179 == Screenshots ==
180
181 1. Admin Settings Page
182 2. Link Checker / Link Tester
183 3. Link Icons
184
185
186 == Documentation ==
187
188 After activating you can set all options for external and internal links.
189
190 = Data attribute "data-wpel-link" =
191
192 Links being processed by this plugin will also contain the data-attribute `data-wpel-link`.
193 The plugin could set the value to `external`, `internal` or `exclude`, meaning how the
194 link was processed.
195
196 You can also set the data-attribute yourself. This way you can force how the plugin will process
197 certain links.
198
199 When you add the value `ignore`, the link will be completely ignored by the plugin:
200
201 `<a href="http://somedomain.com" data-wpel-link="ignore">Go to somedomain</a>`
202
203
204 = Action "wpel_link" =
205
206 Use this action to change the link object after all plugin settings have been applied.
207
208 `add_action( 'wpel_link', ( $link_object ) {
209 if ( $link_object->is_external() ) {
210 // get current url
211 $url = $link_object->getAttribute( 'href' );
212
213 // set redirect url
214 $redirect_url = '//somedom.com?url='. urlencode( $url );
215 $link_object->setAttribute( 'href', $redirect_url );
216 }
217 }, 10, 1 );`
218
219 The link object is an instance of `WPEL_Link` class.
220
221 = Action hook "wpel_before_apply_link" =
222
223 Use this action to change the link object before the plugin settings will be applied on the link.
224 You can use this filter f.e. to ignore individual links from being processed. Or change dynamically how
225 they will be treated by this plugin.
226
227 `add_action( 'wpel_before_apply_link', function ( $link ) {
228 // ignore links with class "some-cls"
229 if ( $link->has_attr_value( 'class', 'some-cls' ) ) {
230 $link->set_ignore();
231 }
232
233 // mark and treat links with class "ext-cls" as external link
234 if ( $link->has_attr_value( 'class', 'ext-cls' ) ) {
235 $link->set_external();
236 }
237 }, 10 );`
238
239 = Filter hook "wpel_apply_settings" =
240
241 When filter returns false the plugin settings will not be applied. Can be used when f.e. certain posts or pages should be ignored by this plugin.
242
243 `add_filter( 'wpel_apply_settings', '__return_false' );`
244
245 See [FAQ](https://wordpress.org/plugins/wp-external-links/faq/) for more info.
246
247 == Changelog ==
248 = 2.66 =
249 * 2026-07-24
250 * minor fixes
251
252 = 2.65 =
253 * 2026-05-21
254 * minor fixes
255
256 = 2.64 =
257 * 2026-03-21
258 * PHP 8.5 compatibility
259 * bug fixes
260
261 = 2.63 =
262 * 2025-07-12
263 * _load_textdomain fix
264
265 = 2.62 =
266 * 2024-10-13
267 * minor security fixes and code tweaks
268
269 = 2.61 =
270 * 2024-07-08
271 * minor security fixes
272
273 = 2.60 =
274 * 2024-02-20
275 * fixed WordPress Network activation bug
276
277 = 2.59 =
278 * 2023-10-25
279 * fixed "icon_type" cannot be found bug
280
281 = 2.58 =
282 * 2023-03-08
283 * security fix
284
285 = 2.57 =
286 * 2022-12-27
287 * added double-check on all template include paths
288
289 = 2.56 =
290 * 2022-11-20
291 * security fixes
292 * removed all external CDNs
293 * fixed translation issues
294
295 = 2.55 =
296 * 2022-07-09
297 * fixed current_screen() bug
298 * fixed "icon_type" cannot be found bug
299 * introduction of the PRO version
300 * removed link scanner beta
301
302 = 2.51 =
303 * 2022-01-28
304 * fixed icons for excluded external links
305 * fixed FontAwesome conflict
306
307 = 2.50 =
308 * 2021-07-09
309 * completely new GUI
310 * link scanner / link analyzer SaaS beta
311
312 = 2.48 =
313 * 2021-01-30
314 * added flyout menu
315 * removed promo for WP 301 Redirects PRO
316
317 = 2.47 =
318 * 2020-10-05
319 * added settings link to plugins table
320 * added promo for WP 301 Redirects PRO
321
322 = 2.46 =
323 * 2020-05-09
324 * fixed "unable to save post" when using Gutenberg
325 * sorry for two updated in two days :(
326
327 = 2.45 =
328 * 2020-05-08
329 * fixed compatibility issue with Site Kit by Google
330
331 = 2.43 =
332 * 2019-12-27
333 * improved link detection regex
334
335 = 2.42 =
336 * 2019-12-18
337 * fixed various undefined variable notices
338 * fixed an issue when there’s no href attribute set in an A element
339
340 = 2.40 =
341 * 2019-11-20
342 * no longer loads CSS and FontAwesome globally on admin pages
343 * added support for "ugc" (User Generated Content) and "sponsored" values in rel
344
345 = 2.35 =
346 * 2019-09-12
347 * FontAwesome updated to 4.7 with 41 new icons
348 * bug fix: ship anchor URLs (#anchor)
349 * bug fix: don't match domain if the name is contained in the URL
350
351 = 2.32 =
352 * 2019-07-09
353 * security fixes
354
355 = 2.3 =
356 * 2019-06-14
357 * bug fixes
358 * 40,000 installations hit on 2018-03-13
359 * for older changelog entries please visit https://getwplinks.com/old-changelog.txt
360