WP External Links (nofollow new tab seo) - Version 1.70

Version Description

  • Added option to ignore all subdomains
Download this release

Release Info

Developer freelancephp
Plugin Icon 128x128 WP External Links (nofollow new tab seo)
Version 1.70
Comparing to
See all releases

Code changes from version 1.62 to 1.70

includes/class-admin-external-links.php CHANGED
@@ -22,6 +22,7 @@ final class Admin_External_Links {
22
  'filter_comments' => 1,
23
  'filter_widgets' => 1,
24
  'ignore' => '//twitter.com/share',
 
25
  ),
26
  'seo' => array(
27
  'external' => 1,
@@ -265,6 +266,14 @@ style;
265
  <span class="description"><?php _e( 'Be as specific as you want, f.e.: <code>twitter.com</code> or <code>https://twitter.com</code>. Seperate each by an enter.' ) ?></span></label>
266
  </td>
267
  </tr>
 
 
 
 
 
 
 
 
268
  </table>
269
  </fieldset>
270
 
22
  'filter_comments' => 1,
23
  'filter_widgets' => 1,
24
  'ignore' => '//twitter.com/share',
25
+ 'ignore_subdomains' => 0,
26
  ),
27
  'seo' => array(
28
  'external' => 1,
266
  <span class="description"><?php _e( 'Be as specific as you want, f.e.: <code>twitter.com</code> or <code>https://twitter.com</code>. Seperate each by an enter.' ) ?></span></label>
267
  </td>
268
  </tr>
269
+ <tr>
270
+ <th style="width:250px;"><?php $this->_e( 'Ignore subdomains' ) ?>
271
+ <?php echo $this->tooltip_help( 'Ignore all links to the site\'s domain and subdomains. These links will be threaded as internal links.' ) ?></th>
272
+ <td>
273
+ <label><?php echo $this->form->checkbox( 'ignore_subdomains', 1 ); ?>
274
+ <span><?php $this->_e( 'Ignore all links to the site\'s domain and subdomains' ) ?></span> <span class="description"><?php $this->_e('These links will be threaded as internal links.') ?></span></label>
275
+ </td>
276
+ </tr>
277
  </table>
278
  </fieldset>
279
 
includes/class-wp-external-links.php CHANGED
@@ -29,10 +29,24 @@ final class WP_External_Links {
29
  // set admin object
30
  $this->admin = new Admin_External_Links();
31
 
32
- // add actions
33
  add_action( 'wp', array( $this, 'call_wp' ) );
34
  }
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  /**
37
  * Quick helper method for getting saved option values
38
  * @param string $key
@@ -188,11 +202,24 @@ final class WP_External_Links {
188
  * @return boolean
189
  */
190
  private function is_external( $href ) {
191
- return ( isset( $href ) AND ( ( strpos( $href, strtolower( get_bloginfo( 'wpurl' ) ) ) === FALSE )
192
- AND ( substr( $href, 0, 7 ) == 'http://'
193
- OR substr( $href, 0, 8 ) == 'https://'
194
- OR substr( $href, 0, 6 ) == 'ftp://'
195
- OR substr( $href, 0, 2 ) == '//' ) ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
197
 
198
  /**
29
  // set admin object
30
  $this->admin = new Admin_External_Links();
31
 
32
+ // add actions
33
  add_action( 'wp', array( $this, 'call_wp' ) );
34
  }
35
 
36
+ /**
37
+ * Get domain name
38
+ * @return string
39
+ */
40
+ private function get_domain() {
41
+ if ( empty($this->_domain_name) ) {
42
+ $url = get_bloginfo('wpurl');
43
+ preg_match("/[a-z0-9\-]{1,63}\.[a-z\.]{2,6}$/", parse_url($url, PHP_URL_HOST), $domain_tld);
44
+ $this->_domain_name = count($domain_tld) > 0 ? $domain_tld[0] : $_SERVER['SERVER_NAME'];
45
+ }
46
+
47
+ return $this->_domain_name;
48
+ }
49
+
50
  /**
51
  * Quick helper method for getting saved option values
52
  * @param string $key
202
  * @return boolean
203
  */
204
  private function is_external( $href ) {
205
+ $wpurl = strtolower( get_bloginfo( 'wpurl' ) );
206
+
207
+ // relative url's are internal
208
+ // so just check absolute url's starting with these protocols
209
+ if ( substr( $href, 0, 7 ) !== 'http://'
210
+ && substr( $href, 0, 8 ) !== 'https://'
211
+ && substr( $href, 0, 6 ) !== 'ftp://'
212
+ && substr( $href, 0, 2 ) !== '//' ) {
213
+ return false;
214
+ }
215
+
216
+ if ( $this->get_opt( 'ignore_subdomains' ) ) {
217
+ $is_external = ( strpos( $href, $this->get_domain() ) === FALSE );
218
+ } else {
219
+ $is_external = ( strpos( $href, $wpurl ) === FALSE );
220
+ }
221
+
222
+ return $is_external;
223
  }
224
 
225
  /**
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: freelancephp
3
  Tags: links, external, icon, target, _blank, _new, _none, rel, nofollow, new window, new tab, javascript, xhtml, seo
4
  Requires at least: 3.6.0
5
- Tested up to: 4.1.1
6
- Stable tag: 1.62
7
 
8
  Open external links in a new window or tab, adding "nofollow", set link icon, styling, SEO friendly options and more. Easy install and go.
9
 
@@ -17,6 +17,7 @@ Configure settings for all external links on your site.
17
  * Choose from 20 icons
18
  * Set other link options (like classes, title etc)
19
  * Make it SEO friendly
 
20
 
21
  = Easy to use =
22
  After activating the plugin all options are already set to make your external links SEO friendly. Optionally you can also set the target for opening in a new window or tab or styling options, like adding an icon.
@@ -192,6 +193,9 @@ See [FAQ](https://wordpress.org/plugins/wp-external-links/faq/) for more possibi
192
 
193
  == Changelog ==
194
 
 
 
 
195
  = 1.62 =
196
  * Fixed php error when using phpQuery option
197
 
2
  Contributors: freelancephp
3
  Tags: links, external, icon, target, _blank, _new, _none, rel, nofollow, new window, new tab, javascript, xhtml, seo
4
  Requires at least: 3.6.0
5
+ Tested up to: 4.2.2
6
+ Stable tag: 1.70
7
 
8
  Open external links in a new window or tab, adding "nofollow", set link icon, styling, SEO friendly options and more. Easy install and go.
9
 
17
  * Choose from 20 icons
18
  * Set other link options (like classes, title etc)
19
  * Make it SEO friendly
20
+ * Compatible with WPMU (Multisite)
21
 
22
  = Easy to use =
23
  After activating the plugin all options are already set to make your external links SEO friendly. Optionally you can also set the target for opening in a new window or tab or styling options, like adding an icon.
193
 
194
  == Changelog ==
195
 
196
+ = 1.70 =
197
+ * Added option to ignore all subdomains
198
+
199
  = 1.62 =
200
  * Fixed php error when using phpQuery option
201
 
wp-external-links.php CHANGED
@@ -4,14 +4,14 @@ Plugin Name: WP External Links
4
  Plugin URI: http://www.freelancephp.net/wp-external-links-plugin
5
  Description: Open external links in a new window/tab, add "external" / "nofollow" to rel-attribute, set icon, XHTML strict, SEO friendly...
6
  Author: Victor Villaverde Laan
7
- Version: 1.62
8
  Author URI: http://www.freelancephp.net
9
  License: Dual licensed under the MIT and GPL licenses
10
  */
11
 
12
  // constants
13
  if (!defined('WP_EXTERNAL_LINKS_FILE')) { define('WP_EXTERNAL_LINKS_FILE', __FILE__); }
14
- if (!defined('WP_EXTERNAL_LINKS_VERSION')) { define('WP_EXTERNAL_LINKS_VERSION', '1.62'); }
15
  if (!defined('WP_EXTERNAL_LINKS_KEY')) { define('WP_EXTERNAL_LINKS_KEY', 'wp_external_links'); }
16
  if (!defined('WP_EXTERNAL_LINKS_DOMAIN')) { define('WP_EXTERNAL_LINKS_DOMAIN', 'wp-external-links'); }
17
  if (!defined('WP_EXTERNAL_LINKS_OPTIONS_NAME')) { define('WP_EXTERNAL_LINKS_OPTIONS_NAME', 'WP_External_Links_options'); }
@@ -47,7 +47,7 @@ if (version_compare($wp_version, '3.6', '>=') && version_compare(phpversion(), '
47
  $plugin_title = get_admin_page_title();
48
 
49
  echo '<div class="error">'
50
- . sprintf(__('<p>Warning - The plugin <strong>%s</strong> requires PHP 5.2.4+ and WP 3.4+. Please upgrade your PHP and/or WordPress.'
51
  . '<br/>Disable the plugin to remove this message.</p>'
52
  , WP_EXTERNAL_LINKS_KEY), $plugin_title)
53
  . '</div>';
4
  Plugin URI: http://www.freelancephp.net/wp-external-links-plugin
5
  Description: Open external links in a new window/tab, add "external" / "nofollow" to rel-attribute, set icon, XHTML strict, SEO friendly...
6
  Author: Victor Villaverde Laan
7
+ Version: 1.70
8
  Author URI: http://www.freelancephp.net
9
  License: Dual licensed under the MIT and GPL licenses
10
  */
11
 
12
  // constants
13
  if (!defined('WP_EXTERNAL_LINKS_FILE')) { define('WP_EXTERNAL_LINKS_FILE', __FILE__); }
14
+ if (!defined('WP_EXTERNAL_LINKS_VERSION')) { define('WP_EXTERNAL_LINKS_VERSION', '1.70'); }
15
  if (!defined('WP_EXTERNAL_LINKS_KEY')) { define('WP_EXTERNAL_LINKS_KEY', 'wp_external_links'); }
16
  if (!defined('WP_EXTERNAL_LINKS_DOMAIN')) { define('WP_EXTERNAL_LINKS_DOMAIN', 'wp-external-links'); }
17
  if (!defined('WP_EXTERNAL_LINKS_OPTIONS_NAME')) { define('WP_EXTERNAL_LINKS_OPTIONS_NAME', 'WP_External_Links_options'); }
47
  $plugin_title = get_admin_page_title();
48
 
49
  echo '<div class="error">'
50
+ . sprintf(__('<p>Warning - The plugin <strong>%s</strong> requires PHP 5.2.4+ and WP 3.6+. Please upgrade your PHP and/or WordPress.'
51
  . '<br/>Disable the plugin to remove this message.</p>'
52
  , WP_EXTERNAL_LINKS_KEY), $plugin_title)
53
  . '</div>';