Jetpack by WordPress.com - Version 4.7.1

Version Description

  • Release date: March 14th, 2017
  • Release post: http://wp.me/p1moTy-48Y

Bug Fixes

  • Carousel: avoid javascript errors that may cause issues with Slideshows or Tiled Galleries.
  • Markdown: always enable Markdown for posts whenever the module is active.
  • Sharing: make sure that sharing buttons open in a small pop-up instead of a separate window.
  • SSO: Avoid token or nonce errors when trying to log in to your site via the Secure Sign On option.
  • VideoPress: add in the ability to get video thumbnails from the WordPress.com REST API.
  • Widgets: improve rendering of the Image Widget via Photon.
  • Widget Visibility: avoid empty widget visibility rules after updating to Jetpack 4.7.
  • Widget Visibility: restore the option to make widgets appear on archive pages of different Custom Post Types.
  • Widget Visibility: migrate widget visibility settings to the new major Page rule for Custom Post Types.
  • Widget Visibility: add missing CSS for widget visibility settings on sites using an RTL language.
Download this release

Release Info

Developer dsmart
Plugin Icon 128x128 Jetpack by WordPress.com
Version 4.7.1
Comparing to
See all releases

Code changes from version 4.7 to 4.7.1

_inc/jetpack-strings.php CHANGED
@@ -131,11 +131,11 @@ __( "Security Scanning", "jetpack" ), // _inc/client/at-a-glance/scan.jsx:29
131
__( "{{a}}Activate Site Verification{{/a}} to verify your site and increase ranking with Google, Bing, and Pinterest.", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:43
132
__( "Site Verification Tools are active. Ensure your site is verified with Google, Bing, and Pinterest for more accurate indexing and ranking. {{a}}Verify now{{/a}}", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:27
133
__( "Site Verification Tools", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:21
134
- __( "By activating ads, you agree to the Automattic Ads {{link}}Terms of Service{{/link}}.", "jetpack" ), // _inc/client/engagement/index.jsx:276
135
- __( "View your earnings", "jetpack" ), // _inc/client/engagement/index.jsx:251
136
- __( "View your {{a}}Email Followers{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:232
137
- __( "View {{a}}All Stats{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:217
138
- __( "Learn More", "jetpack" ), // _inc/client/engagement/index.jsx:210
139
__( "Paid", "jetpack" ), // _inc/client/engagement/index.jsx:158
140
__( "Unavailable in Dev Mode", "jetpack" ), // _inc/client/engagement/index.jsx:128
141
__( "Your site must be accessible by search engines for this feature to work properly. You can change this in {{a}}Reading Settings{{/a}}.", "jetpack" ), // _inc/client/engagement/index.jsx:55
@@ -279,14 +279,14 @@ __( "Something happened while loading stats. Please try again later or {{a}}view
279
__( "Click to view detailed stats.", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:92
280
__( "Views: %(numberOfViews)s", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:90
281
__( "Week of %(date)s", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:74
282
- __( "Paid", "jetpack" ), // _inc/client/components/dash-item/index.jsx:98
283
- __( "Active", "jetpack" ), // _inc/client/components/dash-item/index.jsx:87
284
- __( "Updates Needed", "jetpack" ), // _inc/client/components/dash-item/index.jsx:81
285
__( "Connect Jetpack", "jetpack" ), // _inc/client/components/connect-button/index.jsx:101
286
__( "Disconnect Jetpack", "jetpack" ), // _inc/client/components/connect-button/index.jsx:86
287
__( "Do you really want to disconnect your site from WordPress.com?", "jetpack" ), // _inc/client/components/connect-button/index.jsx:71
288
__( "Link to WordPress.com", "jetpack" ), // _inc/client/components/connect-button/index.jsx:65
289
__( "Unlink me from WordPress.com", "jetpack" ), // _inc/client/components/connect-button/index.jsx:48
290
_x( "Settings", "Noun. Displayed to screen readers.", "jetpack" ), // _inc/client/components/dash-section-header/index.jsx:43
291
_x( "Privacy", "Shorthand for Privacy Policy.", "jetpack" ), // _inc/client/components/footer/index.jsx:126
292
__( "Automattic's Privacy Policy", "jetpack" ), // _inc/client/components/footer/index.jsx:124
131
__( "{{a}}Activate Site Verification{{/a}} to verify your site and increase ranking with Google, Bing, and Pinterest.", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:43
132
__( "Site Verification Tools are active. Ensure your site is verified with Google, Bing, and Pinterest for more accurate indexing and ranking. {{a}}Verify now{{/a}}", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:27
133
__( "Site Verification Tools", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:21
134
+ __( "By activating ads, you agree to the Automattic Ads {{link}}Terms of Service{{/link}}.", "jetpack" ), // _inc/client/engagement/index.jsx:279
135
+ __( "View your earnings", "jetpack" ), // _inc/client/engagement/index.jsx:254
136
+ __( "View your {{a}}Email Followers{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:235
137
+ __( "View {{a}}All Stats{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:220
138
+ __( "Learn More", "jetpack" ), // _inc/client/engagement/index.jsx:213
139
__( "Paid", "jetpack" ), // _inc/client/engagement/index.jsx:158
140
__( "Unavailable in Dev Mode", "jetpack" ), // _inc/client/engagement/index.jsx:128
141
__( "Your site must be accessible by search engines for this feature to work properly. You can change this in {{a}}Reading Settings{{/a}}.", "jetpack" ), // _inc/client/engagement/index.jsx:55
279
__( "Click to view detailed stats.", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:92
280
__( "Views: %(numberOfViews)s", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:90
281
__( "Week of %(date)s", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:74
282
__( "Connect Jetpack", "jetpack" ), // _inc/client/components/connect-button/index.jsx:101
283
__( "Disconnect Jetpack", "jetpack" ), // _inc/client/components/connect-button/index.jsx:86
284
__( "Do you really want to disconnect your site from WordPress.com?", "jetpack" ), // _inc/client/components/connect-button/index.jsx:71
285
__( "Link to WordPress.com", "jetpack" ), // _inc/client/components/connect-button/index.jsx:65
286
__( "Unlink me from WordPress.com", "jetpack" ), // _inc/client/components/connect-button/index.jsx:48
287
+ __( "Paid", "jetpack" ), // _inc/client/components/dash-item/index.jsx:98
288
+ __( "Active", "jetpack" ), // _inc/client/components/dash-item/index.jsx:87
289
+ __( "Updates Needed", "jetpack" ), // _inc/client/components/dash-item/index.jsx:81
290
_x( "Settings", "Noun. Displayed to screen readers.", "jetpack" ), // _inc/client/components/dash-section-header/index.jsx:43
291
_x( "Privacy", "Shorthand for Privacy Policy.", "jetpack" ), // _inc/client/components/footer/index.jsx:126
292
__( "Automattic's Privacy Policy", "jetpack" ), // _inc/client/components/footer/index.jsx:124
changelog.txt CHANGED
@@ -1,5 +1,91 @@
1
== Changelog ==
2
3
= 4.6 =
4
5
* Release date: February 7, 2017
1
== Changelog ==
2
3
+ = 4.7 =
4
+
5
+ * Release date: March 7th, 2017
6
+ * Release post: http://wp.me/p1moTy-46L
7
+
8
+ **Enhancements**
9
+
10
+ * Quickly jump to post specific stats on WordPress.com with a new link.
11
+ * We've added more information to our debug tools to improve your support experience.
12
+ * New HTML5 versions of our house ads are out.
13
+ * Display custom copyright EXIF information in the Carousel with this new filter.
14
+ * We've highlighted the ability to export Contact Form feedback as it was being overlooked.
15
+ * If you have images on WordPress.com we're going to skip using Photon when the images include resize parameters.
16
+ * It is now possible to use the Sharing filter to customize the emails sent from the Email Sharing button.
17
+ * We've updated the library powering the Print link in the Recipe shortcode.
18
+ * Customize the speed and display of your slideshows with new Slideshow shortcode filters.
19
+ * The Twitch.tv shortcode now uses Twitch's new embedded player.
20
+ * Social Menus now come with the option to use SVG icons.
21
+ * Customize the content of the Display Posts Widget with a new filter.
22
+ * We've added a new email field to the Contact Info Widget.
23
+ * The Image and the Text widgets now use Photon if it is enabled.
24
+ * The WordPress.com REST API got several updates including using `register_rest_route()` consistently for registering, new date and time format settings, a filter for theme info results, new links and endpoints, and more.
25
+ * We cleaned up the Google+ Shortcode JS library and added a way to filter the SlideShare shortcode.
26
+
27
+ **Performance Improvements**
28
+
29
+ * Experience better performance with single page load caching of the media summary.
30
+ * We made some improvements to avoid slow queries on sites with thousands of images.
31
+ * The Top Posts widget now utilizes an endpoint from the WP.com REST API improving performance.
32
+ * Improve development mode performance by only calling `site_url()` once.
33
+ * We rewrote the way major/minor rules lists are generated to save bandwidth, and memory for sites using Widget Visibility.
34
+ * We've removed sync options that weren't needed to save memory during the sync process.
35
+
36
+ **Accessibility**
37
+
38
+ * We've improved the highlight of the stats range for a better visual experience and to make it consistent with other areas of the dashboard.
39
+ * Added a missing label to one of the fields in the Email sharing dialog.
40
+ * We've enabled keyboard focus styling in the new admin interface.
41
+ * Increased padding to sharing buttons on mobile to avoid usability issues.
42
+ * We've replaced Widget Visibility text labels with icons to improve usability on smaller devices.
43
+
44
+ **Slightly Less Exciting Enhancements:**
45
+
46
+ * We've added a filter to allow you to remove the Comment Form title.
47
+ * The Development Mode notice got an update to include all possible options to activate Development mode.
48
+ * Jetpack registration function got an update and cleanup.
49
+ * A notice displayed to WooCommerce store owners now detects when WooCommerce Services is installed, but not active.
50
+ * We've removed the Holiday Snow settings until you need them.
51
+ * Improved Infinite Scroll settings to reduce confusion.
52
+ * The HTML classes `infinite-scroll` and `neverending` are now applied using JS instead of PHP.
53
+ * We've updated the support link appearing when you're locked out of your site.
54
+ * New Unit Tests were added to make sure Publicize doesn't break when making changes to the Publicize process.
55
+ * We've added a sync filter to allow customizing timeout.
56
+ * The Top Posts widget now supports non-square image sizes.
57
+ * Added the Video GUID to the media API endpoint.
58
+
59
+ **Improved Compatibility**
60
+
61
+ * Fixed some W3C validation errors in Comments.
62
+ * Infinite Scroll now works beautifully with the Twenty Seventeen Theme.
63
+ * Translate new terms easier with an improvement to the translator comments.
64
+ * We switched to use Core functions to retrieve the list of sites in a multisite network for more accurate results.
65
+ * We added Product visibility to post meta whitelist, for better control of products displayed in Related Posts.
66
+ * We no longer sync specific post meta data added by Postman or WP RSS Mutli Importer to avoid performance issues during the sync process.
67
+ * We're now avoiding conflicts with plugins adding the core Video upload library to the post editor.
68
+ * Removed deprecated compatibility code for older versions of WordPress.
69
+ * We had some Shortcode conflicts with WordPress Post embeds, but that's been fixed.
70
+
71
+ **Bug Fixes**
72
+
73
+ * The Carousel `jp_carousel_load_for_images_linked_to_file` filter wasn't working well with Photon, this has been fixed.
74
+ * Carousel is now working well when loaded from infinite scroll.
75
+ * We removed double slashes from file paths in the Contact Form to avoid errors in specific server environments.
76
+ * Fixed a problem where CSS was being stripped when migrating from Jetpack's Custom CSS to Core's CSS editor.
77
+ * Our Debug Tool is now reporting the correct URL when WordPress lives in a subdirectory.
78
+ * Found and fixed a PHP error when uninstalling Jetpack.
79
+ * Infinite Scroll is no longer buggy when displaying the last page, and is more compatible with certain themes that were returning posts when there were none left to show.
80
+ * We're now skipping Photon for .ashx files.
81
+ * The Twitter character counter in Publicize got a fix to display info correctly.
82
+ * Related Posts are now displaying correctly for everyone, and we brought back the `jetpack_sharing_headline_html` filter.
83
+ * We've improved Sharing to render custom sharing services correctly, include Open Graph Meta Tags, and avoid JavaScript errors when jQuery is enqueued in the footer.
84
+ * Synchronization scheduling issues have been resolved.
85
+ * We're now trimming spaces in URLs for Image and Display Posts Widgets.
86
+ * Widget Visibility wasn't playing nice on taxonomy pages, this is no longer the case.
87
+ * The WordPress.com REST API received a couple of fixes to remove PHP errors when editing via the WordPress.com interface, authentication errors when using third-party apps, and permission errors when trying to preview edited posts in the WordPress.com editor.
88
+
89
= 4.6 =
90
91
* Release date: February 7, 2017
class.jetpack.php CHANGED
@@ -335,7 +335,7 @@ class Jetpack {
335
list( $version ) = explode( ':', Jetpack_Options::get_option( 'version' ) );
336
if ( JETPACK__VERSION != $version ) {
337
338
- // Check which active modules actually exist and remove others from active_modules list
339
$unfiltered_modules = Jetpack::get_active_modules();
340
$modules = array_filter( $unfiltered_modules, array( 'Jetpack', 'is_module' ) );
341
if ( array_diff( $unfiltered_modules, $modules ) ) {
@@ -349,11 +349,43 @@ class Jetpack {
349
Jetpack_Options::delete_option( 'identity_crisis_whitelist' );
350
}
351
352
- Jetpack::maybe_set_version_option();
353
}
354
}
355
}
356
357
static function activate_manage( ) {
358
if ( did_action( 'init' ) || current_filter() == 'init' ) {
359
self::activate_module( 'manage', false, false );
335
list( $version ) = explode( ':', Jetpack_Options::get_option( 'version' ) );
336
if ( JETPACK__VERSION != $version ) {
337
338
+ // check which active modules actually exist and remove others from active_modules list
339
$unfiltered_modules = Jetpack::get_active_modules();
340
$modules = array_filter( $unfiltered_modules, array( 'Jetpack', 'is_module' ) );
341
if ( array_diff( $unfiltered_modules, $modules ) ) {
349
Jetpack_Options::delete_option( 'identity_crisis_whitelist' );
350
}
351
352
+ // Make sure Markdown for posts gets turned back on
353
+ if ( ! get_option( 'wpcom_publish_posts_with_markdown' ) ) {
354
+ update_option( 'wpcom_publish_posts_with_markdown', true );
355
+ }
356
+
357
+ if ( did_action( 'wp_loaded' ) ) {
358
+ self::upgrade_on_load();
359
+ } else {
360
+ add_action(
361
+ 'wp_loaded',
362
+ array( __CLASS__, 'upgrade_on_load' )
363
+ );
364
+ }
365
}
366
}
367
}
368
369
+ /**
370
+ * Runs upgrade routines that need to have modules loaded.
371
+ */
372
+ static function upgrade_on_load() {
373
+
374
+ // Not attempting any upgrades if jetpack_modules_loaded did not fire.
375
+ // This can happen in case Jetpack has been just upgraded and is
376
+ // being initialized late during the page load. In this case we wait
377
+ // until the next proper admin page load with Jetpack active.
378
+ if ( ! did_action( 'jetpack_modules_loaded' ) ) {
379
+ return;
380
+ }
381
+
382
+ Jetpack::maybe_set_version_option();
383
+
384
+ if ( class_exists( 'Jetpack_Widget_Conditions' ) ) {
385
+ Jetpack_Widget_Conditions::migrate_post_type_rules();
386
+ }
387
+ }
388
+
389
static function activate_manage( ) {
390
if ( did_action( 'init' ) || current_filter() == 'init' ) {
391
self::activate_module( 'manage', false, false );
css/jetpack-rtl.css CHANGED
@@ -22,4 +22,7 @@ div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding
22
.jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
23
.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:100% 0;clear:none;float:right;margin:0 0 -3px -5px;padding:0 0 6px 8px;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:100% 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
24
.widget.widget_authors li>ul,.widget_authors>ul{margin-right:inherit;padding-right:0}.widget_authors ul li li{padding-right:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-left:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
25
.wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;right:0;left:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:right!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
22
.jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
23
.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:100% 0;clear:none;float:right;margin:0 0 -3px -5px;padding:0 0 6px 8px;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:100% 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
24
.widget.widget_authors li>ul,.widget_authors>ul{margin-right:inherit;padding-right:0}.widget_authors ul li li{padding-right:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-left:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
25
+ /*!
26
+ * Do not modify this file directly. It is compiled SASS code.
27
+ */#wp-admin-bar-jetpack-idc.hide{display:none}#wp-admin-bar-jetpack-idc .jp-idc-admin-bar{background:#fff;border-radius:2px;color:#23282d;padding:4px 8px;font-size:12px}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons{color:#23282d;font-family:dashicons}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before{font-size:16px}#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item{background:inherit}#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar{background:#eee}
28
.wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;right:0;left:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:right!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
css/jetpack.css CHANGED
@@ -22,4 +22,7 @@ div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding
22
.jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
23
.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:left;margin:0 -5px -3px 0;padding:0 8px 6px 0;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
24
.widget.widget_authors li>ul,.widget_authors>ul{margin-left:inherit;padding-left:0}.widget_authors ul li li{padding-left:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-right:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
25
.wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;left:0;right:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:left!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
22
.jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
23
.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:left;margin:0 -5px -3px 0;padding:0 8px 6px 0;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
24
.widget.widget_authors li>ul,.widget_authors>ul{margin-left:inherit;padding-left:0}.widget_authors ul li li{padding-left:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-right:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
25
+ /*!
26
+ * Do not modify this file directly. It is compiled SASS code.
27
+ */#wp-admin-bar-jetpack-idc.hide{display:none}#wp-admin-bar-jetpack-idc .jp-idc-admin-bar{background:#fff;border-radius:2px;color:#23282d;padding:4px 8px;font-size:12px}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons{color:#23282d;font-family:dashicons}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before{font-size:16px}#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item{background:inherit}#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar{background:#eee}
28
.wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;left:0;right:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:left!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
jetpack.php CHANGED
@@ -5,7 +5,7 @@
5
* Plugin URI: http://jetpack.com
6
* Description: Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.
7
* Author: Automattic
8
- * Version: 4.7
9
* Author URI: http://jetpack.com
10
* License: GPL2+
11
* Text Domain: jetpack
@@ -14,7 +14,7 @@
14
15
define( 'JETPACK__MINIMUM_WP_VERSION', '4.6' );
16
17
- define( 'JETPACK__VERSION', '4.7' );
18
define( 'JETPACK_MASTER_USER', true );
19
define( 'JETPACK__API_VERSION', 1 );
20
define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
5
* Plugin URI: http://jetpack.com
6
* Description: Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.
7
* Author: Automattic
8
+ * Version: 4.7.1
9
* Author URI: http://jetpack.com
10
* License: GPL2+
11
* Text Domain: jetpack
14
15
define( 'JETPACK__MINIMUM_WP_VERSION', '4.6' );
16
17
+ define( 'JETPACK__VERSION', '4.7.1' );
18
define( 'JETPACK_MASTER_USER', true );
19
define( 'JETPACK__API_VERSION', 1 );
20
define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
modules/carousel/jetpack-carousel.js CHANGED
@@ -445,6 +445,11 @@ jQuery(document).ready(function($) {
445
return;
446
}
447
448
var valid = false;
449
450
// if link points to 'Media File' (ignoring GET parameters) and flag is set allow it
445
return;
446
}
447
448
+ // skip if the container is not a link
449
+ if ( 'undefined' === typeof( $( container ).attr( 'href' ) ) ) {
450
+ return;
451
+ }
452
+
453
var valid = false;
454
455
// if link points to 'Media File' (ignoring GET parameters) and flag is set allow it
modules/markdown.php CHANGED
@@ -13,3 +13,17 @@
13
*/
14
15
include dirname( __FILE__ ) . '/markdown/easy-markdown.php';
13
*/
14
15
include dirname( __FILE__ ) . '/markdown/easy-markdown.php';
16
+
17
+ /**
18
+ * Remove checkbox set in modules/markdown/easy-markdown.php.
19
+ * We don't just remove the register_setting call there because the checkbox is
20
+ * needed on WordPress.com, where the file is sync'ed verbatim.
21
+ */
22
+ function jetpack_markdown_posting_always_on() {
23
+ // why oh why isn't there a remove_settings_field?
24
+ global $wp_settings_fields;
25
+ if ( isset( $wp_settings_fields['writing']['default'][ WPCom_Markdown::POST_OPTION ] ) ) {
26
+ unset( $wp_settings_fields['writing']['default'][ WPCom_Markdown::POST_OPTION ] );
27
+ }
28
+ }
29
+ add_action( 'admin_init', 'jetpack_markdown_posting_always_on', 11 );
modules/sharedaddy/sharing-service.php CHANGED
@@ -548,9 +548,6 @@ function sharing_add_footer() {
548
);
549
wp_localize_script( 'sharing-js', 'sharing_js_options', $sharing_js_options);
550
}
551
- }
552
-
553
- function sharing_add_footer_scripts_inline() {
554
$sharer = new Sharing_Service();
555
$enabled = $sharer->get_blog_services();
556
foreach ( array_merge( $enabled['visible'], $enabled['hidden'] ) AS $service ) {
@@ -779,9 +776,6 @@ function sharing_display( $text = '', $echo = false ) {
779
780
// Enqueue scripts for the footer
781
add_action( 'wp_footer', 'sharing_add_footer' );
782
-
783
- // Print inline scripts that depend on jQuery
784
- add_action( 'wp_footer', 'sharing_add_footer_scripts_inline', 25 );
785
}
786
}
787
548
);
549
wp_localize_script( 'sharing-js', 'sharing_js_options', $sharing_js_options);
550
}
551
$sharer = new Sharing_Service();
552
$enabled = $sharer->get_blog_services();
553
foreach ( array_merge( $enabled['visible'], $enabled['hidden'] ) AS $service ) {
776
777
// Enqueue scripts for the footer
778
add_action( 'wp_footer', 'sharing_add_footer' );
779
}
780
}
781
modules/sso.php CHANGED
@@ -31,8 +31,8 @@ class Jetpack_SSO {
31
add_action( 'init', array( $this, 'maybe_logout_user' ), 5 );
32
add_action( 'jetpack_modules_loaded', array( $this, 'module_configure_button' ) );
33
add_action( 'login_form_logout', array( $this, 'store_wpcom_profile_cookies_on_logout' ) );
34
- add_action( 'wp_login', array( 'Jetpack_SSO', 'clear_wpcom_profile_cookies' ) );
35
add_action( 'jetpack_unlinked_user', array( $this, 'delete_connection_for_user') );
36
37
// Adding this action so that on login_init, the action won't be sanitized out of the $action global.
38
add_action( 'login_form_jetpack-sso', '__return_true' );
@@ -554,6 +554,44 @@ class Jetpack_SSO {
554
}
555
}
556
557
static function delete_connection_for_user( $user_id ) {
558
if ( ! $wpcom_user_id = get_user_meta( $user_id, 'wpcom_user_id', true ) ) {
559
return;
@@ -577,17 +615,33 @@ class Jetpack_SSO {
577
}
578
579
static function request_initial_nonce() {
580
- Jetpack::load_xml_rpc_client();
581
- $xml = new Jetpack_IXR_Client( array(
582
- 'user_id' => get_current_user_id(),
583
- ) );
584
- $xml->query( 'jetpack.sso.requestNonce' );
585
586
- if ( $xml->isError() ) {
587
- return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() );
588
}
589
590
- return $xml->getResponse();
591
}
592
593
/**
@@ -727,8 +781,6 @@ class Jetpack_SSO {
727
if ( ! empty( $_COOKIE['jetpack_sso_redirect_to'] ) ) {
728
// Set that as the requested redirect to
729
$redirect_to = $_request_redirect_to = esc_url_raw( $_COOKIE['jetpack_sso_redirect_to'] );
730
- // And then purge it
731
- setcookie( 'jetpack_sso_redirect_to', ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
732
}
733
734
$json_api_auth_environment = Jetpack_SSO_Helpers::get_json_api_auth_environment();
31
add_action( 'init', array( $this, 'maybe_logout_user' ), 5 );
32
add_action( 'jetpack_modules_loaded', array( $this, 'module_configure_button' ) );
33
add_action( 'login_form_logout', array( $this, 'store_wpcom_profile_cookies_on_logout' ) );
34
add_action( 'jetpack_unlinked_user', array( $this, 'delete_connection_for_user') );
35
+ add_action( 'wp_login', array( 'Jetpack_SSO', 'clear_cookies_after_login' ) );
36
37
// Adding this action so that on login_init, the action won't be sanitized out of the $action global.
38
add_action( 'login_form_jetpack-sso', '__return_true' );
554
}
555
}
556
557
+ /**
558
+ * Clear cookies that are no longer needed once the user has logged in.
559
+ *
560
+ * @since 4.8.0
561
+ */
562
+ static function clear_cookies_after_login() {
563
+ self::clear_wpcom_profile_cookies();
564
+ if ( isset( $_COOKIE[ 'jetpack_sso_nonce' ] ) ) {
565
+ setcookie(
566
+ 'jetpack_sso_nonce',
567
+ ' ',
568
+ time() - YEAR_IN_SECONDS,
569
+ COOKIEPATH,
570
+ COOKIE_DOMAIN
571
+ );
572
+ }
573
+
574
+ if ( isset( $_COOKIE[ 'jetpack_sso_original_request' ] ) ) {
575
+ setcookie(
576
+ 'jetpack_sso_original_request',
577
+ ' ',
578
+ time() - YEAR_IN_SECONDS,
579
+ COOKIEPATH,
580
+ COOKIE_DOMAIN
581
+ );
582
+ }
583
+
584
+ if ( isset( $_COOKIE[ 'jetpack_sso_redirect_to' ] ) ) {
585
+ setcookie(
586
+ 'jetpack_sso_redirect_to',
587
+ ' ',
588
+ time() - YEAR_IN_SECONDS,
589
+ COOKIEPATH,
590
+ COOKIE_DOMAIN
591
+ );
592
+ }
593
+ }
594
+
595
static function delete_connection_for_user( $user_id ) {
596
if ( ! $wpcom_user_id = get_user_meta( $user_id, 'wpcom_user_id', true ) ) {
597
return;
615
}
616
617
static function request_initial_nonce() {
618
+ $nonce = ! empty( $_COOKIE[ 'jetpack_sso_nonce' ] )
619
+ ? $_COOKIE[ 'jetpack_sso_nonce' ]
620
+ : false;
621
622
+ if ( ! $nonce ) {
623
+ Jetpack::load_xml_rpc_client();
624
+ $xml = new Jetpack_IXR_Client( array(
625
+ 'user_id' => get_current_user_id(),
626
+ ) );
627
+ $xml->query( 'jetpack.sso.requestNonce' );
628
+
629
+ if ( $xml->isError() ) {
630
+ return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() );
631
+ }
632
+
633
+ $nonce = $xml->getResponse();
634
+
635
+ setcookie(
636
+ 'jetpack_sso_nonce',
637
+ $nonce,
638
+ time() + ( 10 * MINUTE_IN_SECONDS ),
639
+ COOKIEPATH,
640
+ COOKIE_DOMAIN
641
+ );
642
}
643
644
+ return sanitize_key( $nonce );
645
}
646
647
/**
781
if ( ! empty( $_COOKIE['jetpack_sso_redirect_to'] ) ) {
782
// Set that as the requested redirect to
783
$redirect_to = $_request_redirect_to = esc_url_raw( $_COOKIE['jetpack_sso_redirect_to'] );
784
}
785
786
$json_api_auth_environment = Jetpack_SSO_Helpers::get_json_api_auth_environment();
modules/videopress/class.videopress-xmlrpc.php CHANGED
@@ -155,18 +155,21 @@ class VideoPress_XMLRPC {
155
return false;
156
}
157
158
// Update the poster in the VideoPress info.
159
$thumbnail_id = videopress_download_poster_image( $poster, $post_id );
160
161
- if ( !is_int( $thumbnail_id ) ) {
162
return false;
163
}
164
165
update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id );
166
- $meta = wp_get_attachment_metadata( $post_id );
167
-
168
- $meta['videopress']['poster'] = $poster;
169
- wp_update_attachment_metadata( $post_id, $meta );
170
171
return true;
172
}
155
return false;
156
}
157
158
+ // We add ssl => 1 to make sure that the videos.files.wordpress.com domain is parsed as photon.
159
+ $poster = apply_filters( 'jetpack_photon_url', $poster, array( 'ssl' => 1 ), 'https' );
160
+
161
+ $meta = wp_get_attachment_metadata( $post_id );
162
+ $meta['videopress']['poster'] = $poster;
163
+ wp_update_attachment_metadata( $post_id, $meta );
164
+
165
// Update the poster in the VideoPress info.
166
$thumbnail_id = videopress_download_poster_image( $poster, $post_id );
167
168
+ if ( ! is_int( $thumbnail_id ) ) {
169
return false;
170
}
171
172
update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id );
173
174
return true;
175
}
modules/videopress/utility-functions.php CHANGED
@@ -558,17 +558,22 @@ function videopress_make_media_upload_path( $blog_id ) {
558
function video_get_info_by_blogpostid( $blog_id, $post_id ) {
559
$post = get_post( $post_id );
560
561
if ( is_wp_error( $post ) ) {
562
- return false;
563
}
564
565
if ( 'video/videopress' !== $post->post_mime_type ) {
566
- return false;
567
}
568
569
- $video_info = new stdClass();
570
$video_info->guid = get_post_meta( $post_id, 'videopress_guid', true );
571
- $video_info->finish_date_gmt = '0000-00-00 00:00:00';
572
573
if ( videopress_is_finished_processing( $post_id ) ) {
574
$video_info->finish_date_gmt = date( 'Y-m-d H:i:s' );
@@ -576,3 +581,118 @@ function video_get_info_by_blogpostid( $blog_id, $post_id ) {
576
577
return $video_info;
578
}
558
function video_get_info_by_blogpostid( $blog_id, $post_id ) {
559
$post = get_post( $post_id );
560
561
+ $video_info = new stdClass();
562
+ $video_info->post_id = $post_id;
563
+ $video_info->blog_id = $blog_id;
564
+ $video_info->guid = null;
565
+ $video_info->finish_date_gmt = '0000-00-00 00:00:00';
566
+
567
if ( is_wp_error( $post ) ) {
568
+ return $video_info;
569
}
570
571
if ( 'video/videopress' !== $post->post_mime_type ) {
572
+ return $video_info;
573
}
574
575
+ // Since this is a VideoPress post, lt's fill out the rest of the object.
576
$video_info->guid = get_post_meta( $post_id, 'videopress_guid', true );
577
578
if ( videopress_is_finished_processing( $post_id ) ) {
579
$video_info->finish_date_gmt = date( 'Y-m-d H:i:s' );
581
582
return $video_info;
583
}
584
+
585
+
586
+ /**
587
+ * Check that a VideoPress video format has finished processing.
588
+ *
589
+ * This uses the info object, because that is what the WPCOM endpoint
590
+ * uses, however we don't have a complete info object in the same way
591
+ * WPCOM does, so we pull the meta information out of the post
592
+ * options instead.
593
+ *
594
+ * Note: This mimics the WPCOM function of the same name and helps the media
595
+ * API endpoint add all needed VideoPress data.
596
+ *
597
+ * @param stdClass $info
598
+ * @param string $format
599
+ * @return bool
600
+ */
601
+ function video_format_done( $info, $format ) {
602
+
603
+ // Avoids notice when a non-videopress item is found.
604
+ if ( ! is_object( $info ) ) {
605
+ return false;
606
+ }
607
+
608
+ $post_id = $info->post_id;
609
+
610
+ if ( get_post_mime_type( $post_id ) !== 'video/videopress' ) {
611
+ return false;
612
+ }
613
+
614
+ $post = get_post( $post_id );
615
+
616
+ if ( is_wp_error( $post ) ) {
617
+ return false;
618
+ }
619
+
620
+ $meta = wp_get_attachment_metadata( $post->ID );
621
+
622
+ switch ( $format ) {
623
+ case 'fmt_hd':
624
+ return isset( $meta['videopress']['files']['hd']['mp4'] );
625
+ break;
626
+
627
+ case 'fmt_dvd':
628
+ return isset( $meta['videopress']['files']['dvd']['mp4'] );
629
+ break;
630
+
631
+ case 'fmt_std':
632
+ return isset( $meta['videopress']['files']['std']['mp4'] );
633
+ break;
634
+
635
+ case 'fmt_ogg':
636
+ return isset( $meta['videopress']['files']['std']['ogg'] );
637
+ break;
638
+ }
639
+
640
+ return false;
641
+ }
642
+
643
+ /**
644
+ * Get the image URL for the given VideoPress GUID
645
+ *
646
+ * We look up by GUID, because that is what WPCOM does and this needs to be
647
+ * parameter compatible with that.
648
+ *
649
+ * Note: This mimics the WPCOM function of the same name and helps the media
650
+ * API endpoint add all needed VideoPress data.
651
+ *
652
+ * @param string $guid
653
+ * @param string $format
654
+ * @return string
655
+ */
656
+ function video_image_url_by_guid( $guid, $format ) {
657
+
658
+ $post = video_get_post_by_guid( $guid );
659
+
660
+ if ( is_wp_error( $post ) ) {
661
+ return null;
662
+ }
663
+
664
+ $meta = wp_get_attachment_metadata( $post->ID );
665
+
666
+ // We add ssl => 1 to make sure that the videos.files.wordpress.com domain is parsed as photon.
667
+ $poster = apply_filters( 'jetpack_photon_url', $meta['videopress']['poster'], array( 'ssl' => 1 ), 'https' );
668
+
669
+ return $poster;
670
+ }
671
+
672
+ /**
673
+ * Using a GUID, find a post.
674
+ *
675
+ * @param string $guid
676
+ * @return WP_Post
677
+ */
678
+ function video_get_post_by_guid( $guid ) {
679
+ $args = array(
680
+ 'post_type' => 'attachment',
681
+ 'post_mime_type' => 'video/videopress',
682
+ 'post_status' => 'inherit',
683
+ 'meta_query' => array(
684
+ array(
685
+ 'key' => 'videopress_guid',
686
+ 'value' => $guid,
687
+ 'compare' => '=',
688
+ )
689
+ )
690
+ );
691
+
692
+ $query = new WP_Query( $args );
693
+
694
+ $post = $query->next_post();
695
+
696
+ return $post;
697
+ }
698
+
modules/widget-visibility/widget-conditions.php CHANGED
@@ -91,13 +91,17 @@ class Jetpack_Widget_Conditions {
91
$post_types = get_post_types( array( 'public' => true ), 'objects' );
92
93
$widget_conditions_post_types = array();
94
95
foreach ( $post_types as $post_type ) {
96
$widget_conditions_post_types[] = array( 'post_type-' . $post_type->name, $post_type->labels->singular_name );
97
}
98
99
$widget_conditions_data['page'][] = array( __( 'Post type:', 'jetpack' ), $widget_conditions_post_types );
100
101
$pages_dropdown = preg_replace( '/<\/?select[^>]*?>/i', '', wp_dropdown_pages( array( 'echo' => false ) ) );
102
103
preg_match_all( '/value=.([0-9]+).[^>]*>([^<]+)</', $pages_dropdown, $page_ids_and_titles, PREG_SET_ORDER );
@@ -490,6 +494,8 @@ class Jetpack_Widget_Conditions {
490
default:
491
if ( substr( $rule['minor'], 0, 10 ) == 'post_type-' ) {
492
$condition_result = is_singular( substr( $rule['minor'], 10 ) );
493
} elseif ( $rule['minor'] == get_option( 'page_for_posts' ) ) {
494
// If $rule['minor'] is a page ID which is also the posts page
495
$condition_result = $wp_query->is_posts_page;
@@ -690,6 +696,76 @@ class Jetpack_Widget_Conditions {
690
691
return $term_id;
692
}
693
}
694
695
add_action( 'init', array( 'Jetpack_Widget_Conditions', 'init' ) );
91
$post_types = get_post_types( array( 'public' => true ), 'objects' );
92
93
$widget_conditions_post_types = array();
94
+ $widget_conditions_post_type_archives = array();
95
96
foreach ( $post_types as $post_type ) {
97
$widget_conditions_post_types[] = array( 'post_type-' . $post_type->name, $post_type->labels->singular_name );
98
+ $widget_conditions_post_type_archives[] = array( 'post_type_archive-' . $post_type->name, $post_type->labels->name );
99
}
100
101
$widget_conditions_data['page'][] = array( __( 'Post type:', 'jetpack' ), $widget_conditions_post_types );
102
103
+ $widget_conditions_data['page'][] = array( __( 'Post type Archives:', 'jetpack' ), $widget_conditions_post_type_archives );
104
+
105
$pages_dropdown = preg_replace( '/<\/?select[^>]*?>/i', '', wp_dropdown_pages( array( 'echo' => false ) ) );
106
107
preg_match_all( '/value=.([0-9]+).[^>]*>([^<]+)</', $pages_dropdown, $page_ids_and_titles, PREG_SET_ORDER );
494
default:
495
if ( substr( $rule['minor'], 0, 10 ) == 'post_type-' ) {
496
$condition_result = is_singular( substr( $rule['minor'], 10 ) );
497
+ } elseif ( substr( $rule['minor'], 0, 18 ) == 'post_type_archive-' ) {
498
+ $condition_result = is_post_type_archive( substr( $rule['minor'], 18 ) );
499
} elseif ( $rule['minor'] == get_option( 'page_for_posts' ) ) {
500
// If $rule['minor'] is a page ID which is also the posts page
501
$condition_result = $wp_query->is_posts_page;
696
697
return $term_id;
698
}
699
+
700
+ /**
701
+ * Upgrade routine to go through all widgets and move the Post Type
702
+ * setting to its newer location.
703
+ *
704
+ * @since 4.7.1
705
+ *
706
+ */
707
+ static function migrate_post_type_rules() {
708
+ global $wp_registered_widgets;
709
+
710
+ $sidebars_widgets = get_option( 'sidebars_widgets' );
711
+
712
+ // Going through all sidebars and through inactive and orphaned widgets
713
+ foreach ( $sidebars_widgets as $s => $sidebar ) {
714
+ if ( ! is_array( $sidebar ) ) {
715
+ continue;
716
+ }
717
+
718
+ foreach ( $sidebar as $w => $widget ) {
719
+ // $widget is the id of the widget
720
+ if ( empty( $wp_registered_widgets[ $widget ] ) ) {
721
+ continue;
722
+ }
723
+
724
+ $opts = $wp_registered_widgets[ $widget ];
725
+ $instances = get_option( $opts['callback'][0]->option_name );
726
+
727
+ // Going through each instance of the widget
728
+ foreach( $instances as $number => $instance ) {
729
+ if (
730
+ ! is_array( $instance ) ||
731
+ empty( $instance['conditions'] ) ||
732
+ empty( $instance['conditions']['rules'] )
733
+ ) {
734
+ continue;
735
+ }
736
+
737
+ // Going through all visibility rules
738
+ foreach( $instance['conditions']['rules'] as $index => $rule ) {
739
+
740
+ // We only need Post Type rules
741
+ if ( 'post_type' !== $rule['major'] ) {
742
+ continue;
743
+ }
744
+
745
+ $rule_type = false;
746
+
747
+ // Post type or type archive rule
748
+ if ( 0 === strpos( $rule['minor'], 'post_type_archive' ) ) {
749
+ $rule_type = 'post_type_archive';
750
+ } else if ( 0 === strpos( $rule['minor'], 'post_type' ) ) {
751
+ $rule_type = 'post_type';
752
+ }
753
+
754
+ if ( $rule_type ) {
755
+ $post_type = substr( $rule['minor'], strlen( $rule_type ) + 1 );
756
+ $rule['minor'] = $rule_type . '-' . $post_type;
757
+ $rule['major'] = 'page';
758
+
759
+ $instances[ $number ]['conditions']['rules'][ $index ] = $rule;
760
+ }
761
+ }
762
+ }
763
+
764
+ update_option( $opts['callback'][0]->option_name, $instances );
765
+ }
766
+ }
767
+ }
768
+
769
}
770
771
add_action( 'init', array( 'Jetpack_Widget_Conditions', 'init' ) );
modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css CHANGED
@@ -1,10 +1,7 @@
1
- /* This file was automatically generated on Jul 14 2014 00:47:30 */
2
-
3
.wp-customizer .expanded .widget-conditional .widget-conditional-inner {
4
- width: 98%;
5
- -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
6
- -moz-box-sizing: border-box; /* Firefox, other Gecko */
7
- box-sizing: border-box;
8
}
9
10
.wp-customizer .expanded .widget-conditional .form{
@@ -35,9 +32,12 @@
35
}
36
.widget-conditional .condition {
37
padding-top: 12px;
38
}
39
.widget-conditional .condition select {
40
width: 120px;
41
}
42
.widget-conditional .condition-top select {
43
width: auto;
@@ -48,22 +48,51 @@
48
margin-top: -20px;
49
}
50
.widget-conditional .selection {
51
- margin-left: 70px;
52
}
53
.widget-conditional .condition .actions {
54
margin-top: -28px;
55
}
56
57
.widget-conditional .condition-control a {
58
text-decoration: none;
59
}
60
- .widget-conditional .condition:last-child .condition-conjunction {
61
display: none;
62
}
63
- .widget-control-actions .alignright {
64
- text-align: left;
65
- color:#999;
66
}
67
.wp-core-ui .button.display-options {
68
margin-left: 5px;
69
}
@@ -76,3 +105,11 @@
76
max-width: none;
77
height: auto;
78
}
1
+ /* Do not modify this file directly. It is concatenated from individual module CSS files. */
2
.wp-customizer .expanded .widget-conditional .widget-conditional-inner {
3
+ width: 98%; /* Safari/Chrome, other WebKit */ /* Firefox, other Gecko */
4
+ box-sizing: border-box;
5
}
6
7
.wp-customizer .expanded .widget-conditional .form{
32
}
33
.widget-conditional .condition {
34
padding-top: 12px;
35
+ position: relative;
36
}
37
.widget-conditional .condition select {
38
width: 120px;
39
+ position: relative;
40
+ z-index: 2;
41
}
42
.widget-conditional .condition-top select {
43
width: auto;
48
margin-top: -20px;
49
}
50
.widget-conditional .selection {
51
+ margin-left: 50px;
52
+ margin-right: 20px;
53
+ }
54
+ .widget-conditional .conditions-rule-has-children {
55
+ display: block;
56
}
57
.widget-conditional .condition .actions {
58
margin-top: -28px;
59
+ }.widget-conditional .condition .actions {
60
+ margin-top: -28px;
61
}
62
63
.widget-conditional .condition-control a {
64
text-decoration: none;
65
+ position: absolute;
66
+ top: 17px;
67
+ text-indent: -9999px;
68
+ z-index: 1;
69
+ }
70
+ .widget-conditional .condition-control a:before {
71
+ position: absolute;
72
+ text-indent: 0;
73
+ right: 0;
74
}
75
+ .widget-conditional .condition-control .delete-condition {
76
+ right: 0;
77
+ color: #f11;
78
+ }
79
+ .widget-conditional .condition-control .add-condition {
80
+ left: 0;
81
+ }
82
+
83
+ .widget-conditional .condition:last-child .condition-conjunction,
84
+ .widget-conditional .condition:last-child .condition-intersection {
85
display: none;
86
}
87
+
88
+ .widget-conditional.conjunction .condition-intersection {
89
+ display: none;
90
+ }
91
+
92
+ .widget-conditional.intersection .condition-conjunction {
93
+ display: none;
94
}
95
+
96
.wp-core-ui .button.display-options {
97
margin-left: 5px;
98
}
105
max-width: none;
106
height: auto;
107
}
108
+ .wp-customizer .widget-conditional .condition-control a {
109
+ top: 15px;
110
+ }
111
+ @media screen and ( max-width: 782px ) {
112
+ .widget-conditional .condition-control a {
113
+ top: 20px;
114
+ }
115
+ }
modules/widget-visibility/widget-conditions/widget-conditions.js CHANGED
@@ -200,7 +200,10 @@ jQuery( function( $ ) {
200
select = condition.find( '.conditions-rule-minor' ).html( '' ),
201
major = condition.data( 'rule-major' );
202
203
- if ( ! major ) {
204
select.attr( 'disabled', 'disabled' );
205
return;
206
}
200
select = condition.find( '.conditions-rule-minor' ).html( '' ),
201
major = condition.data( 'rule-major' );
202
203
+ // Disable the select, if major rule is empty or if it's a `post_type`.
204
+ // "Post Type" rule has been removed in Jetpack 4.7, and
205
+ // because it breaks all other rules we should `return`.
206
+ if ( ! major || 'post_type' === major ) {
207
select.attr( 'disabled', 'disabled' );
208
return;
209
}
modules/widgets/image-widget.php CHANGED
@@ -69,14 +69,7 @@ class Jetpack_Image_Widget extends WP_Widget {
69
70
if ( '' != $instance['img_url'] ) {
71
72
- $image_url = Jetpack::is_module_active( 'photon' )
73
- ? jetpack_photon_url( $instance['img_url'], array(
74
- 'w' => $instance['img_width'],
75
- 'h' => $instance['img_height'],
76
- ) )
77
- : $instance['img_url'];
78
-
79
- $output = '<img src="' . esc_url( $image_url ) . '" ';
80
81
if ( '' != $instance['alt_text'] ) {
82
$output .= 'alt="' . esc_attr( $instance['alt_text'] ) .'" ';
@@ -94,6 +87,11 @@ class Jetpack_Image_Widget extends WP_Widget {
94
$output .= 'height="' . esc_attr( $instance['img_height'] ) .'" ';
95
}
96
$output .= '/>';
97
if ( '' != $instance['link'] ) {
98
$target = ! empty( $instance['link_target_blank'] )
99
? 'target="_blank"'
69
70
if ( '' != $instance['img_url'] ) {
71
72
+ $output = '<img src="' . esc_url( $instance['img_url'] ) . '" ';
73
74
if ( '' != $instance['alt_text'] ) {
75
$output .= 'alt="' . esc_attr( $instance['alt_text'] ) .'" ';
87
$output .= 'height="' . esc_attr( $instance['img_height'] ) .'" ';
88
}
89
$output .= '/>';
90
+
91
+ if ( class_exists( 'Jetpack_Photon' ) && Jetpack::is_module_active( 'photon' ) ) {
92
+ $output = Jetpack_Photon::filter_the_content( $output );
93
+ }
94
+
95
if ( '' != $instance['link'] ) {
96
$target = ! empty( $instance['link_target_blank'] )
97
? 'target="_blank"'
readme.txt CHANGED
@@ -1,7 +1,7 @@
1
=== Jetpack by WordPress.com ===
2
Contributors: automattic, adamkheckler, aduth, akirk, allendav, alternatekev, andy, annezazu, apeatling, azaozz, batmoo, barry, beaulebens, blobaugh, cainm, cena, cfinke, chaselivingston, chellycat, csonnek, danielbachhuber, davoraltman, daniloercoli, designsimply, dllh, drawmyface, dsmart, dzver, ebinnion, eliorivero, enej, eoigal, erania-pinnera, ethitter, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, jacobshere, jblz, jeherve, jenhooks, jenia, jgs, jkudish, jmdodd, Joen, johnjamesjacoby, jshreve, koke, kraftbj, lamdayap, lancewillett, lschuyler, macmanx, martinremy, matt, matveb, mattwiebe, maverick3x6, mcsf, mdawaffe, michael-arestad, migueluy, mikeyarce, mkaz, nancythanki, nickmomrik, obenland, pento, professor44, rachelsquirrel, rdcoll, ryancowles, richardmuscat, richardmtl, roccotripaldi, samhotchkiss, scarstocea, sdquirk, stephdau, tmoorewp, tyxla, Viper007Bond, westi, yoavf, zinigor
3
Tags: Jetpack, WordPress.com, backup, security, related posts, CDN, speed, anti-spam, social sharing, SEO, video, stats
4
- Stable tag: 4.7
5
Requires at least: 4.6
6
Tested up to: 4.7
7
@@ -103,6 +103,24 @@ There are opportunities for developers at all levels to contribute. [Learn more
103
104
== Changelog ==
105
106
= 4.7 =
107
108
* Release date: March 7th, 2017
1
=== Jetpack by WordPress.com ===
2
Contributors: automattic, adamkheckler, aduth, akirk, allendav, alternatekev, andy, annezazu, apeatling, azaozz, batmoo, barry, beaulebens, blobaugh, cainm, cena, cfinke, chaselivingston, chellycat, csonnek, danielbachhuber, davoraltman, daniloercoli, designsimply, dllh, drawmyface, dsmart, dzver, ebinnion, eliorivero, enej, eoigal, erania-pinnera, ethitter, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, jacobshere, jblz, jeherve, jenhooks, jenia, jgs, jkudish, jmdodd, Joen, johnjamesjacoby, jshreve, koke, kraftbj, lamdayap, lancewillett, lschuyler, macmanx, martinremy, matt, matveb, mattwiebe, maverick3x6, mcsf, mdawaffe, michael-arestad, migueluy, mikeyarce, mkaz, nancythanki, nickmomrik, obenland, pento, professor44, rachelsquirrel, rdcoll, ryancowles, richardmuscat, richardmtl, roccotripaldi, samhotchkiss, scarstocea, sdquirk, stephdau, tmoorewp, tyxla, Viper007Bond, westi, yoavf, zinigor
3
Tags: Jetpack, WordPress.com, backup, security, related posts, CDN, speed, anti-spam, social sharing, SEO, video, stats
4
+ Stable tag: 4.7.1
5
Requires at least: 4.6
6
Tested up to: 4.7
7
103
104
== Changelog ==
105
106
+ = 4.7.1 =
107
+
108
+ * Release date: March 14th, 2017
109
+ * Release post: http://wp.me/p1moTy-48Y
110
+
111
+ **Bug Fixes**
112
+
113
+ * Carousel: avoid javascript errors that may cause issues with Slideshows or Tiled Galleries.
114
+ * Markdown: always enable Markdown for posts whenever the module is active.
115
+ * Sharing: make sure that sharing buttons open in a small pop-up instead of a separate window.
116
+ * SSO: Avoid token or nonce errors when trying to log in to your site via the Secure Sign On option.
117
+ * VideoPress: add in the ability to get video thumbnails from the WordPress.com REST API.
118
+ * Widgets: improve rendering of the Image Widget via Photon.
119
+ * Widget Visibility: avoid empty widget visibility rules after updating to Jetpack 4.7.
120
+ * Widget Visibility: restore the option to make widgets appear on archive pages of different Custom Post Types.
121
+ * Widget Visibility: migrate widget visibility settings to the new major Page rule for Custom Post Types.
122
+ * Widget Visibility: add missing CSS for widget visibility settings on sites using an RTL language.
123
+
124
= 4.7 =
125
126
* Release date: March 7th, 2017