Page Links To - Version 3.3.0

Version Description

  • Move Block Editor UI into its own panel.
  • Compatibility with Elementor.
  • Allow posts to load in the customizer (used by some front-end editing plugins).
  • Allow the "open in new tab" functionality to be completely disabled with a filter.
  • Make "open in new tab" more reliable.
Download this release

Release Info

Developer markjaquith
Plugin Icon wp plugin Page Links To
Version 3.3.0
Comparing to
See all releases

Code changes from version 3.2.2 to 3.3.0

classes/plugin.php CHANGED
@@ -31,7 +31,7 @@ class CWS_PageLinksTo {
31
const DISMISSED_NOTICES = 'page_links_dismissed_options';
32
const MESSAGE_ID = 4;
33
const NEWSLETTER_URL = 'https://pages.convertkit.com/8eb23c1339/1ce4614706';
34
- const CSS_JS_VERSION = '3.2.2';
35
36
/**
37
* Whether to replace WP links with their specified URLs.
@@ -313,7 +313,9 @@ class CWS_PageLinksTo {
313
* @return void
314
*/
315
public function wp_enqueue_scripts() {
316
- wp_enqueue_script( 'page-links-to', $this->get_url() . 'dist/new-tab.js', array(), self::CSS_JS_VERSION, true );
317
}
318
319
/**
@@ -337,7 +339,12 @@ class CWS_PageLinksTo {
337
public function enqueue_block_editor_assets() {
338
// Gutenberg.
339
if ( self::is_block_editor() && self::is_supported_post_type() ) {
340
- wp_enqueue_script( 'plt-gutenberg', $this->get_url() . 'dist/block-editor.js', array( 'wp-edit-post', 'wp-element', 'wp-plugins' ), self::CSS_JS_VERSION, true );
341
}
342
}
343
@@ -521,7 +528,9 @@ class CWS_PageLinksTo {
521
<p><label><input type="radio" id="cws-links-to-choose-custom" name="cws_links_to_choice" value="custom" <?php checked( $linked ); ?> /> <?php _e( 'A custom URL', 'page-links-to' ); ?></label></p>
522
<div id="cws-links-to-custom-section" class="<?php echo ! $linked ? 'hide-if-js' : ''; ?>">
523
<p><input placeholder="http://" name="cws_links_to" type="text" id="cws-links-to" value="<?php echo esc_attr( $url ); ?>" /></p>
524
- <p><label for="cws-links-to-new-tab"><input type="checkbox" name="cws_links_to_new_tab" id="cws-links-to-new-tab" value="_blank" <?php checked( (bool) self::get_target( $post->ID ) ); ?>> <?php _e( 'Open this link in a new tab', 'page-links-to' ); ?></label></p>
525
<?php do_action( 'page_links_to_meta_box_bottom' ); ?>
526
</div>
527
@@ -539,6 +548,14 @@ class CWS_PageLinksTo {
539
return $this->save_post( $post_id );
540
}
541
542
/**
543
* Saves data on post save.
544
*
@@ -550,7 +567,7 @@ class CWS_PageLinksTo {
550
if ( ( ! isset( $_POST['cws_links_to_choice'] ) || 'custom' == $_POST['cws_links_to_choice'] ) && isset( $_POST['cws_links_to'] ) && strlen( $_POST['cws_links_to'] ) > 0 && $_POST['cws_links_to'] !== 'http://' ) {
551
$url = self::clean_url( stripslashes( $_POST['cws_links_to'] ) );
552
self::set_link( $post_id, $url );
553
- if ( isset( $_POST['cws_links_to_new_tab'] ) ) {
554
self::set_link_new_tab( $post_id );
555
} else {
556
self::set_link_same_tab( $post_id );
@@ -644,7 +661,7 @@ class CWS_PageLinksTo {
644
if ( $meta_link ) {
645
$link = apply_filters( 'page_links_to_link', $meta_link, $post, $link );
646
$link = esc_url( $link );
647
- if ( ! is_admin() && ! (defined( 'REST_REQUEST' ) && REST_REQUEST ) && self::get_target( $post->ID ) ) {
648
$link .= '#new_tab';
649
}
650
}
@@ -667,6 +684,18 @@ class CWS_PageLinksTo {
667
return $url;
668
}
669
670
/**
671
* Performs a redirect.
672
*
@@ -675,7 +704,7 @@ class CWS_PageLinksTo {
675
function template_redirect() {
676
$link = self::get_redirect();
677
678
- if ( $link ) {
679
do_action( 'page_links_to_redirect_url', get_queried_object_id(), $link );
680
wp_redirect( $link, 301 );
681
exit;
31
const DISMISSED_NOTICES = 'page_links_dismissed_options';
32
const MESSAGE_ID = 4;
33
const NEWSLETTER_URL = 'https://pages.convertkit.com/8eb23c1339/1ce4614706';
34
+ const CSS_JS_VERSION = '3.3.0';
35
36
/**
37
* Whether to replace WP links with their specified URLs.
313
* @return void
314
*/
315
public function wp_enqueue_scripts() {
316
+ if ( self::supports( 'new_tab' ) ) {
317
+ wp_enqueue_script( 'page-links-to', $this->get_url() . 'dist/new-tab.js', array(), self::CSS_JS_VERSION, true );
318
+ }
319
}
320
321
/**
339
public function enqueue_block_editor_assets() {
340
// Gutenberg.
341
if ( self::is_block_editor() && self::is_supported_post_type() ) {
342
+ wp_enqueue_script( 'plt-block-editor', $this->get_url() . 'dist/block-editor.js', array( 'wp-edit-post', 'wp-element', 'wp-plugins' ), self::CSS_JS_VERSION, true );
343
+ wp_localize_script( 'plt-block-editor', 'pltOptions', [
344
+ 'supports' => [
345
+ 'newTab' => self::supports( 'new_tab' ),
346
+ ],
347
+ ]);
348
}
349
}
350
528
<p><label><input type="radio" id="cws-links-to-choose-custom" name="cws_links_to_choice" value="custom" <?php checked( $linked ); ?> /> <?php _e( 'A custom URL', 'page-links-to' ); ?></label></p>
529
<div id="cws-links-to-custom-section" class="<?php echo ! $linked ? 'hide-if-js' : ''; ?>">
530
<p><input placeholder="http://" name="cws_links_to" type="text" id="cws-links-to" value="<?php echo esc_attr( $url ); ?>" /></p>
531
+ <?php if ( $this->supports('new_tab') ) { ?>
532
+ <p><label for="cws-links-to-new-tab"><input type="checkbox" name="cws_links_to_new_tab" id="cws-links-to-new-tab" value="_blank" <?php checked( (bool) self::get_target( $post->ID ) ); ?>> <?php _e( 'Open this link in a new tab', 'page-links-to' ); ?></label></p>
533
+ <?php } ?>
534
<?php do_action( 'page_links_to_meta_box_bottom' ); ?>
535
</div>
536
548
return $this->save_post( $post_id );
549
}
550
551
+ public static function supports( $feature = '' ) {
552
+ switch( $feature ) {
553
+ case 'new_tab':
554
+ default:
555
+ return apply_filters( 'page_links_to_supports_' . $feature, true );
556
+ }
557
+ }
558
+
559
/**
560
* Saves data on post save.
561
*
567
if ( ( ! isset( $_POST['cws_links_to_choice'] ) || 'custom' == $_POST['cws_links_to_choice'] ) && isset( $_POST['cws_links_to'] ) && strlen( $_POST['cws_links_to'] ) > 0 && $_POST['cws_links_to'] !== 'http://' ) {
568
$url = self::clean_url( stripslashes( $_POST['cws_links_to'] ) );
569
self::set_link( $post_id, $url );
570
+ if ( isset( $_POST['cws_links_to_new_tab'] ) && self::supports( 'new_tab' ) ) {
571
self::set_link_new_tab( $post_id );
572
} else {
573
self::set_link_same_tab( $post_id );
661
if ( $meta_link ) {
662
$link = apply_filters( 'page_links_to_link', $meta_link, $post, $link );
663
$link = esc_url( $link );
664
+ if ( self::supports( 'new_tab' ) && ! is_admin() && ! (defined( 'REST_REQUEST' ) && REST_REQUEST ) && self::get_target( $post->ID ) ) {
665
$link .= '#new_tab';
666
}
667
}
684
return $url;
685
}
686
687
+ /**
688
+ * Whether the request has a flag that should halt the redirect.
689
+ *
690
+ * @return bool
691
+ */
692
+ function has_non_redirect_flag() {
693
+ return (
694
+ isset( $_GET['customize_theme'] ) ||
695
+ isset( $_GET['elementor-preview'] )
696
+ );
697
+ }
698
+
699
/**
700
* Performs a redirect.
701
*
704
function template_redirect() {
705
$link = self::get_redirect();
706
707
+ if ( $link && !self::has_non_redirect_flag() ) {
708
do_action( 'page_links_to_redirect_url', get_queried_object_id(), $link );
709
wp_redirect( $link, 301 );
710
exit;
dist/block-editor.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-components', 'wp-compose', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-plugins', 'wp-polyfill'), 'version' => '8204ba84b25c5d8f2490799dab3397cb');
1
+ <?php return array('dependencies' => array('wp-components', 'wp-compose', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-plugins', 'wp-polyfill'), 'version' => '38c7841f3ee595833041ebb0e30ac5d1');
dist/block-editor.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=11)}([function(e,t){!function(){e.exports=this.wp.components}()},function(e,t){!function(){e.exports=this.wp.compose}()},function(e,t){!function(){e.exports=this.wp.data}()},function(e,t){!function(){e.exports=this.wp.element}()},function(e,t){!function(){e.exports=this.wp.editPost}()},function(e,t){!function(){e.exports=this.wp.plugins}()},,,,,,function(e,t,n){"use strict";n.r(t);var r=n(0),o=n(1),a=n(2),i=n(3),l=n(4),u=n(5);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e){var t=e.children;return React.createElement("div",{style:{display:"flex",flexDirection:"column"}},t)}var h=function(e){function t(e){var n,r,o,a,i,l;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,n=!(o=p(t).call(this,e))||"object"!==c(o)&&"function"!=typeof o?f(r):o,a=f(n),l={prevUrl:"",prevNewTab:!1},(i="state")in a?Object.defineProperty(a,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[i]=l,n.toggleStatus=n.toggleStatus.bind(f(n)),n.state.enabled=n.hasUrl(),n}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,e),n=t,(o=[{key:"getUrl",value:function(){return this.props.url||""}},{key:"getDisplayUrl",value:function(){var e=this.state.prevUrl;return this.getUrl()||e}},{key:"hasUrl",value:function(){return this.getUrl().length>0}},{key:"opensInNewTab",value:function(){return this.props.newTab}},{key:"enabled",value:function(){return this.state.enabled}},{key:"toggleStatus",value:function(e){var t=this,n=this.state,r=n.prevUrl,o=n.prevNewTab,a=this.props,i=a.onUpdateLink,l=a.onUpdateNewTab;this.setState((function(n){var r={enabled:e};return n.enabled&&(r.prevUrl=t.getUrl()),r})),e?(i(r),l(o)):(i(null),l(!1),this.setState({prevUrl:this.getUrl(),prevNewTab:this.opensInNewTab()}))}},{key:"updateLink",value:function(e){var t=this.props,n=t.meta;(0,t.onUpdateLink)(n,e)}},{key:"render",value:function(){var e=this.props,t=e.onUpdateLink,n=e.onUpdateNewTab;return React.createElement(l.PluginPostStatusInfo,null,React.createElement(d,null,React.createElement(r.PanelRow,null,React.createElement(r.CheckboxControl,{label:"Custom Permalink","data-testid":"plt-enabled",checked:this.enabled(),onChange:this.toggleStatus})),this.enabled()&&React.createElement(React.Fragment,null,React.createElement(r.PanelRow,null,React.createElement(r.TextControl,{label:"Links to","data-testid":"plt-url",value:this.getDisplayUrl(),onChange:t,placeholder:"https://"})),React.createElement(r.PanelRow,null,React.createElement(r.CheckboxControl,{label:"Open in new tab","data-testid":"plt-newtab",checked:this.opensInNewTab(),onChange:n})))))}}])&&s(n.prototype,o),a&&s(n,a),t}(i.Component),y=Object(o.compose)([Object(a.withSelect)((function(e){var t=function(t){return(e("core/editor").getEditedPostAttribute("meta")||[])[t]};return{url:t("_links_to"),newTab:"_blank"===t("_links_to_target")}})),Object(a.withDispatch)((function(e){return{onUpdateLink:function(t){e("core/editor").editPost({meta:{_links_to:t}})},onUpdateNewTab:function(t){e("core/editor").editPost({meta:{_links_to_target:t?"_blank":""}})}}})),o.withInstanceId])(h);Object(u.registerPlugin)("page-links-to",{render:y})}]);
1
+ !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=10)}([function(e,t){!function(){e.exports=this.wp.components}()},function(e,t){!function(){e.exports=this.wp.compose}()},function(e,t){!function(){e.exports=this.wp.data}()},function(e,t){!function(){e.exports=this.wp.element}()},function(e,t){!function(){e.exports=this.wp.editPost}()},function(e,t){!function(){e.exports=this.wp.plugins}()},,,,,function(e,t,n){"use strict";n.r(t);var o=n(0),r=n(1),i=n(2),a=n(3),l=n(4),u=n(5);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var d=function(e){function t(e){var n,o,r,i,a,l;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),o=this,n=!(r=p(t).call(this,e))||"object"!==c(r)&&"function"!=typeof r?f(o):r,i=f(n),l={prevUrl:"",prevNewTab:!1},(a="state")in i?Object.defineProperty(i,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):i[a]=l,n.toggleStatus=n.toggleStatus.bind(f(n)),n.state.enabled=n.hasUrl(),n}var n,i,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,e),n=t,(i=[{key:"getUrl",value:function(){return this.props.url||""}},{key:"getDisplayUrl",value:function(){var e=this.state.prevUrl;return this.getUrl()||e}},{key:"hasUrl",value:function(){return this.getUrl().length>0}},{key:"opensInNewTab",value:function(){return this.props.newTab}},{key:"enabled",value:function(){return this.state.enabled}},{key:"toggleStatus",value:function(e){var t=this,n=this.state,o=n.prevUrl,r=n.prevNewTab,i=this.props,a=i.onUpdateLink,l=i.onUpdateNewTab;this.setState((function(n){var o={enabled:e};return n.enabled&&(o.prevUrl=t.getUrl()),o})),e?(a(o),l(r)):(a(null),l(!1),this.setState({prevUrl:this.getUrl(),prevNewTab:this.opensInNewTab()}))}},{key:"updateLink",value:function(e){var t=this.props,n=t.meta;(0,t.onUpdateLink)(n,e)}},{key:"render",value:function(){var e=this,t=this.props,n=t.onUpdateLink,i=t.onUpdateNewTab,a=Object(r.withState)({option:this.enabled()?"custom":"wordpress"})((function(t){var n=t.option,r=t.setState;return React.createElement(o.RadioControl,{label:"Point this content to:",selected:n,options:[{label:"Its normal WordPress URL",value:"wordpress"},{label:"A custom URL",value:"custom"}],onChange:function(t){r({option:t}),e.toggleStatus("custom"===t)}})}));return React.createElement(l.PluginDocumentSettingPanel,{title:"Page Links To",name:"PageLinksTo",icon:this.enabled()?"admin-links":"disabled",className:"plt-panel"},React.createElement(o.PanelRow,null,React.createElement(a,null)),this.enabled()&&React.createElement(React.Fragment,null,React.createElement(o.PanelRow,null,React.createElement(o.TextControl,{label:"Links to","data-testid":"plt-url",value:this.getDisplayUrl(),onChange:n,placeholder:"https://"})),window.pltOptions.supports.newTab&&React.createElement(o.PanelRow,null,React.createElement(o.CheckboxControl,{label:"Open in new tab","data-testid":"plt-newtab",checked:this.opensInNewTab(),onChange:i}))))}}])&&s(n.prototype,i),a&&s(n,a),t}(a.Component),h=Object(r.compose)([Object(i.withSelect)((function(e){var t=function(t){return(e("core/editor").getEditedPostAttribute("meta")||[])[t]};return{url:t("_links_to"),newTab:"_blank"===t("_links_to_target")}})),Object(i.withDispatch)((function(e){return{onUpdateLink:function(t){e("core/editor").editPost({meta:{_links_to:t}})},onUpdateNewTab:function(t){e("core/editor").editPost({meta:{_links_to_target:t?"_blank":""}})}}})),r.withInstanceId])(d);Object(u.registerPlugin)("page-links-to",{render:h})}]);
dist/new-tab.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-polyfill'), 'version' => '291d43f7019b13a0e577f186f8cac368');
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => 'aa558cd385761d6ec13ab44d6774c409');
dist/new-tab.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/dist/",r(r.s=10)}({10:function(e,t){var r,n;r=document,n=function(e){var t=/#new_tab#x2F;;"A"===e.tagName&&t.test(e.getAttribute("href"))&&(e.setAttribute("target","_blank"),e.setAttribute("href",e.getAttribute("href").replace(t,"")))},r.addEventListener("click",(function(e){return n(e.target)})),r.addEventListener("DOMContentLoaded",(function(){for(var e=r.getElementsByTagName("A"),t=0;t<e.length;t++)n(e[t])}))}});
1
+ !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/dist/",r(r.s=11)}({11:function(e,t,r){"use strict";r.r(t);var n=function(e){var t=/#new_tab#x2F;;"A"===e.tagName&&t.test(e.getAttribute("href"))&&(e.setAttribute("target","_blank"),e.setAttribute("href",e.getAttribute("href").replace(t,"")))},o=function(e){return n(e.target.closest("a"))},u=function(){for(var e=document.getElementsByTagName("A"),t=0;t<e.length;t++)n(e[t])};document.addEventListener("click",o),document.addEventListener("DOMContentLoaded",u)}});
page-links-to.php CHANGED
@@ -7,7 +7,7 @@
7
* Plugin Name: Page Links To
8
* Plugin URI: http://txfx.net/wordpress-plugins/page-links-to/
9
* Description: Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources.
10
- * Version: 3.2.2
11
* Author: Mark Jaquith
12
* Author URI: https://coveredweb.com/
13
* Text Domain: page-links-to
7
* Plugin Name: Page Links To
8
* Plugin URI: http://txfx.net/wordpress-plugins/page-links-to/
9
* Description: Allows you to point WordPress pages or posts to a URL of your choosing. Good for setting up navigational links to non-WP sections of your site or to off-site resources.
10
+ * Version: 3.3.0
11
* Author: Mark Jaquith
12
* Author URI: https://coveredweb.com/
13
* Text Domain: page-links-to
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://txfx.net/wordpress-plugins/donate
5
Tags: page, redirect, link, external link, repoint
6
Requires at least: 4.8
7
Tested up to: 5.4
8
- Stable tag: 3.2.2
9
10
Lets you make a WordPress page (or port or other content type) link to a URL of your choosing (on your site, or on another site), instead of its normal WordPress URL.
11
@@ -77,6 +77,13 @@ You can contribute (or report bugs) on [Github](https://github.com/markjaquith/p
77
78
== Changelog ==
79
80
= 3.2.2 =
81
* Bug fixes
82
* Better compat with custom post types in the Block Editor
5
Tags: page, redirect, link, external link, repoint
6
Requires at least: 4.8
7
Tested up to: 5.4
8
+ Stable tag: 3.3.0
9
10
Lets you make a WordPress page (or port or other content type) link to a URL of your choosing (on your site, or on another site), instead of its normal WordPress URL.
11
77
78
== Changelog ==
79
80
+ = 3.3.0 =
81
+ * Move Block Editor UI into its own panel.
82
+ * Compatibility with Elementor.
83
+ * Allow posts to load in the customizer (used by some front-end editing plugins).
84
+ * Allow the "open in new tab" functionality to be completely disabled with a filter.
85
+ * Make "open in new tab" more reliable.
86
+
87
= 3.2.2 =
88
* Bug fixes
89
* Better compat with custom post types in the Block Editor