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 | |
| Version | 4.7.1 |
| Comparing to | |
| See all releases | |
Code changes from version 4.7 to 4.7.1
- _inc/jetpack-strings.php +8 -8
- changelog.txt +86 -0
- class.jetpack.php +34 -2
- css/jetpack-rtl.css +3 -0
- css/jetpack.css +3 -0
- jetpack.php +2 -2
- modules/carousel/jetpack-carousel.js +5 -0
- modules/markdown.php +14 -0
- modules/sharedaddy/sharing-service.php +0 -6
- modules/sso.php +63 -11
- modules/videopress/class.videopress-xmlrpc.php +8 -5
- modules/videopress/utility-functions.php +124 -4
- modules/widget-visibility/widget-conditions.php +76 -0
- modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css +48 -11
- modules/widget-visibility/widget-conditions/widget-conditions.js +4 -1
- modules/widgets/image-widget.php +6 -8
- readme.txt +19 -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:
|
| 135 |
-
__( "View your earnings", "jetpack" ), // _inc/client/engagement/index.jsx:
|
| 136 |
-
__( "View your {{a}}Email Followers{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:
|
| 137 |
-
__( "View {{a}}All Stats{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:
|
| 138 |
-
__( "Learn More", "jetpack" ), // _inc/client/engagement/index.jsx:
|
| 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 |
-
//
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
) );
|
| 584 |
-
$xml->query( 'jetpack.sso.requestNonce' );
|
| 585 |
|
| 586 |
-
if ( $
|
| 587 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 588 |
}
|
| 589 |
|
| 590 |
-
return $
|
| 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
|
| 563 |
}
|
| 564 |
|
| 565 |
if ( 'video/videopress' !== $post->post_mime_type ) {
|
| 566 |
-
return
|
| 567 |
}
|
| 568 |
|
| 569 |
-
|
| 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 |
-
/*
|
| 2 |
-
|
| 3 |
.wp-customizer .expanded .widget-conditional .widget-conditional-inner {
|
| 4 |
-
width: 98%;
|
| 5 |
-
|
| 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:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
display: none;
|
| 62 |
}
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 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 |
-
$
|
| 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
|
