Version Description
Download this release
Release Info
Developer | diegoquinteiro |
Plugin | Instant Articles for WP |
Version | 4.0.6 |
Comparing to | |
See all releases |
Code changes from version 4.0.5 to 4.0.6
- CHANGELOG.md +11 -1
- LABELS.md +19 -0
- README.md +7 -1
- embeds.php +38 -21
- facebook-instant-articles.php +2 -40
- meta-box/class-instant-articles-meta-box.php +25 -21
- meta-box/meta-box-error.php +10 -0
- meta-box/meta-box-template.php +6 -6
- readme.txt +12 -2
- rules-configuration.json +17 -0
- vendor/composer/installed.json +135 -135
CHANGELOG.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1 |
## Change Log
|
2 |
|
3 |
-
### 4.0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
- [#750](https://github.com/automattic/facebook-instant-articles-wp/pull/750) Fix query limit and escaping on AMP generation (@diegoquinteiro)
|
5 |
|
6 |
### 4.0.4 (2017/07/27 20:14 +00:00)
|
1 |
## Change Log
|
2 |
|
3 |
+
### 4.0.6 (2017/12/04 00:26 +00:00)
|
4 |
+
- [#814](https://github.com/automattic/facebook-instant-articles-wp/pull/814) Add default rule for Twitter blockquote (@pestevez)
|
5 |
+
- [#806](https://github.com/automattic/facebook-instant-articles-wp/pull/806) Clarify requirement of site connection in README (@pestevez)
|
6 |
+
- [#798](https://github.com/automattic/facebook-instant-articles-wp/pull/798) remove article rescrape code (@timjacobi)
|
7 |
+
- [#777](https://github.com/automattic/facebook-instant-articles-wp/pull/777) update instructions (@timjacobi)
|
8 |
+
- [#778](https://github.com/automattic/facebook-instant-articles-wp/pull/778) Add label definitions (@timjacobi)
|
9 |
+
- [#792](https://github.com/automattic/facebook-instant-articles-wp/pull/792) Change meta box and readme so user doesn't think IAs are actually submitted to Facebook (@timjacobi)
|
10 |
+
- [#797](https://github.com/automattic/facebook-instant-articles-wp/pull/797) Display error message if meta box can't be loaded (@timjacobi)
|
11 |
+
- [#775](https://github.com/automattic/facebook-instant-articles-wp/pull/775) Adds caching to instant_articles_embed_oembed_html (@emrikol)
|
12 |
+
|
13 |
+
### 4.0.5 (2017/08/24 19:08 +00:00)
|
14 |
- [#750](https://github.com/automattic/facebook-instant-articles-wp/pull/750) Fix query limit and escaping on AMP generation (@diegoquinteiro)
|
15 |
|
16 |
### 4.0.4 (2017/07/27 20:14 +00:00)
|
LABELS.md
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
## Labels
|
2 |
+
### bug
|
3 |
+
A general bug in the plugin that needs to be fixed
|
4 |
+
### compat: wordpress.com
|
5 |
+
An incompatibility between the plugin and wordpress.com
|
6 |
+
### compat: 3rd party
|
7 |
+
An incompatibility between the plugin and another 3rd party plugin
|
8 |
+
### documentation
|
9 |
+
Incomplete or misleading information in the official documentation
|
10 |
+
### enhancement/feature request
|
11 |
+
Something that is currently not supported but requested by one or more users
|
12 |
+
### help wanted
|
13 |
+
An issue for which the contributors look for help from the community
|
14 |
+
### missing rule
|
15 |
+
A transformation rule that should be added
|
16 |
+
### more info needed
|
17 |
+
The author of the issue has provided insufficient information
|
18 |
+
### transformation
|
19 |
+
An bug in the transformation which is not related to a missing rule
|
README.md
CHANGED
@@ -39,6 +39,12 @@ Facebook requires a minimum number of articles in your feed before they will rev
|
|
39 |
|
40 |
More likely than not, this is because there is markup in the body of your post that is not mapped to a recognized Instant Article component. On the “Edit Post” screen for your post, look for additional information about the *transformed* output shown within the **Facebook Instant Articles** module located at the bottom of the screen.
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
**In the Instant Articles module for my post, what does the “This post was transformed into an Instant Article with some warnings” message mean?**
|
43 |
|
44 |
When transforming your post into an Instant Article, this plugin will show warnings when it encounters content which might not be valid when published to Facebook. When you see this message, it is recommended to resolve each warning individually.
|
@@ -57,7 +63,7 @@ You can propose popular transformer rules to be included in the plugin by [sugge
|
|
57 |
|
58 |
**How do I post articles to Instant Articles after plugin is installed?**
|
59 |
|
60 |
-
|
61 |
|
62 |
**How do I change the feed slug/URL if I'm using the RSS integration?**
|
63 |
|
39 |
|
40 |
More likely than not, this is because there is markup in the body of your post that is not mapped to a recognized Instant Article component. On the “Edit Post” screen for your post, look for additional information about the *transformed* output shown within the **Facebook Instant Articles** module located at the bottom of the screen.
|
41 |
|
42 |
+
**Why doesn't my post appear in the list of Instant Articles in the publisher tools?**
|
43 |
+
Your posts are imported to your library when they are shared on Facebook for the first time.
|
44 |
+
|
45 |
+
Alternatively, you can trigger a manual scrape by pasting your URL on our [Share Debugger](http://developers.facebook.com/tools/debug)
|
46 |
+
|
47 |
+
Only Instant Articles with URLs in [domains you have claimed](https://developers.facebook.com/docs/instant-articles/guides/publishertools#connect) will show up in the Publishing Tools section.
|
48 |
**In the Instant Articles module for my post, what does the “This post was transformed into an Instant Article with some warnings” message mean?**
|
49 |
|
50 |
When transforming your post into an Instant Article, this plugin will show warnings when it encounters content which might not be valid when published to Facebook. When you see this message, it is recommended to resolve each warning individually.
|
63 |
|
64 |
**How do I post articles to Instant Articles after plugin is installed?**
|
65 |
|
66 |
+
In order to import your posts to your Instant Articles library on Facebook you need to [Connect Your Site](https://developers.facebook.com/docs/instant-articles/guides/publishertools#connect) first. Then either share your posts on your page or use the [Sharing Debugger](https://developers.intern.facebook.com/tools/debug/sharing/) to scrape them. After you have 10 articles imported, you will be able to submit them for review.
|
67 |
|
68 |
**How do I change the feed slug/URL if I'm using the RSS integration?**
|
69 |
|
embeds.php
CHANGED
@@ -24,31 +24,48 @@ remove_all_filters( 'embed_oembed_html' );
|
|
24 |
*/
|
25 |
function instant_articles_embed_oembed_html( $html, $url, $attr, $post_id ) {
|
26 |
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
}
|
30 |
|
31 |
-
//
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
$provider_name = false;
|
36 |
-
if ( false !== strpos( $provider_url, 'instagram.com' ) ) {
|
37 |
-
$provider_name = 'instagram';
|
38 |
-
} elseif ( false !== strpos( $provider_url, 'twitter.com' ) ) {
|
39 |
-
$provider_name = 'twitter';
|
40 |
-
} elseif ( false !== strpos( $provider_url, 'youtube.com' ) ) {
|
41 |
-
$provider_name = 'youtube';
|
42 |
-
} elseif( false !== strpos( $provider_url, 'vimeo.com' ) ) {
|
43 |
-
$provider_name = 'vimeo';
|
44 |
-
} elseif( false !== strpos( $provider_url, 'vine.co' ) ) {
|
45 |
-
$provider_name = 'vine';
|
46 |
-
} elseif( false !== strpos( $provider_url, 'facebook.com' ) ) {
|
47 |
-
$provider_name = 'facebook';
|
48 |
}
|
49 |
|
50 |
-
$provider_name = apply_filters( 'instant_articles_social_embed_type', $provider_name, $url );
|
51 |
-
|
52 |
if ( $provider_name ) {
|
53 |
$html = instant_articles_embed_get_html( $provider_name, $html, $url, $attr, $post_id );
|
54 |
}
|
24 |
*/
|
25 |
function instant_articles_embed_oembed_html( $html, $url, $attr, $post_id ) {
|
26 |
|
27 |
+
$cache_key = md5( $url . ':instant_articles_oembed_provider' );
|
28 |
+
$provider_name = get_transient( $cache_key );
|
29 |
+
|
30 |
+
if ( false === $provider_name ) {
|
31 |
+
if ( ! class_exists( 'WP_oEmbed' ) ) {
|
32 |
+
include_once( ABSPATH . WPINC . '/class-oembed.php' );
|
33 |
+
}
|
34 |
+
|
35 |
+
// Instead of checking all possible URL variants, use the provider list from WP_oEmbed.
|
36 |
+
$wp_oembed = new WP_oEmbed();
|
37 |
+
$provider_url = $wp_oembed->get_provider( $url );
|
38 |
+
|
39 |
+
$provider_name = false;
|
40 |
+
if ( false !== strpos( $provider_url, 'instagram.com' ) ) {
|
41 |
+
$provider_name = 'instagram';
|
42 |
+
} elseif ( false !== strpos( $provider_url, 'twitter.com' ) ) {
|
43 |
+
$provider_name = 'twitter';
|
44 |
+
} elseif ( false !== strpos( $provider_url, 'youtube.com' ) ) {
|
45 |
+
$provider_name = 'youtube';
|
46 |
+
} elseif( false !== strpos( $provider_url, 'vimeo.com' ) ) {
|
47 |
+
$provider_name = 'vimeo';
|
48 |
+
} elseif( false !== strpos( $provider_url, 'vine.co' ) ) {
|
49 |
+
$provider_name = 'vine';
|
50 |
+
} elseif( false !== strpos( $provider_url, 'facebook.com' ) ) {
|
51 |
+
$provider_name = 'facebook';
|
52 |
+
}
|
53 |
+
|
54 |
+
$provider_name = apply_filters( 'instant_articles_social_embed_type', $provider_name, $url );
|
55 |
+
|
56 |
+
if ( false === $provider_name ) {
|
57 |
+
// We cannot properly cache `false`, so let's use a different value we can check for.
|
58 |
+
set_transient( $cache_key, 'no_provider', HOUR_IN_SECONDS * 12 );
|
59 |
+
} else {
|
60 |
+
set_transient( $cache_key, $provider_name );
|
61 |
+
}
|
62 |
}
|
63 |
|
64 |
+
// Change cacheable `'no_provider'` to `false`.
|
65 |
+
if ( 'no_provider' === $provider_name ) {
|
66 |
+
$provider_name = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
|
|
|
|
|
69 |
if ( $provider_name ) {
|
70 |
$html = instant_articles_embed_get_html( $provider_name, $html, $url, $attr, $post_id );
|
71 |
}
|
facebook-instant-articles.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Description: Add support for Instant Articles for Facebook to your WordPress site.
|
5 |
* Author: Automattic, Dekode, Facebook
|
6 |
* Author URI: https://vip.wordpress.com/plugins/instant-articles/
|
7 |
-
* Version: 4.0.
|
8 |
* Text Domain: instant-articles
|
9 |
* License: GPLv2
|
10 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -68,7 +68,7 @@ if ( version_compare( PHP_VERSION, '5.4', '<' ) ) {
|
|
68 |
|
69 |
defined( 'ABSPATH' ) || die( 'Shame on you' );
|
70 |
|
71 |
-
define( 'IA_PLUGIN_VERSION', '4.0.
|
72 |
define( 'IA_PLUGIN_PATH_FULL', __FILE__ );
|
73 |
define( 'IA_PLUGIN_PATH', plugin_basename( __FILE__ ) );
|
74 |
define( 'IA_PLUGIN_FILE_BASENAME', pathinfo( __FILE__, PATHINFO_FILENAME ) );
|
@@ -419,44 +419,6 @@ if ( version_compare( PHP_VERSION, '5.4', '<' ) ) {
|
|
419 |
|
420 |
Instant_Articles_Wizard::init();
|
421 |
|
422 |
-
function rescrape_article( $post_id, $post ) {
|
423 |
-
$adapter = new Instant_Articles_Post( $post );
|
424 |
-
$old_slugs = get_post_meta( $post_id, '_wp_old_slug' );
|
425 |
-
if ( $adapter->should_submit_post() ) {
|
426 |
-
try {
|
427 |
-
$client = Facebook\HttpClients\HttpClientsFactory::createHttpClient( null );
|
428 |
-
$url_encoded = urlencode($adapter->get_canonical_url());
|
429 |
-
$client->send(
|
430 |
-
"https://graph.facebook.com/?id=$url_encoded&scrape=true",
|
431 |
-
'POST',
|
432 |
-
'',
|
433 |
-
array(),
|
434 |
-
60
|
435 |
-
);
|
436 |
-
foreach ( $old_slugs as $slug ) {
|
437 |
-
$clone_post = clone $post;
|
438 |
-
$clone_post->post_name = $slug;
|
439 |
-
$clone_adapter = new Instant_Articles_Post( $clone_post );
|
440 |
-
|
441 |
-
$url_encoded = urlencode($clone_adapter->get_canonical_url());
|
442 |
-
$client->send(
|
443 |
-
"https://graph.facebook.com/?id=$url_encoded&scrape=true",
|
444 |
-
'POST',
|
445 |
-
'',
|
446 |
-
array(),
|
447 |
-
60
|
448 |
-
);
|
449 |
-
}
|
450 |
-
} catch ( Exception $e ) {
|
451 |
-
Logger::getLogger( 'instantarticles-wp-plugin' )->error(
|
452 |
-
'Unable to submit article.',
|
453 |
-
$e->getTraceAsString()
|
454 |
-
);
|
455 |
-
}
|
456 |
-
}
|
457 |
-
}
|
458 |
-
add_action( 'save_post', 'rescrape_article', 999, 2 );
|
459 |
-
|
460 |
function invalidate_post_transformation_info_cache( $post_id, $post ) {
|
461 |
// These post metas are caches on the calculations made to decide if
|
462 |
// a post is in good state to be converted to an Instant Article or not
|
4 |
* Description: Add support for Instant Articles for Facebook to your WordPress site.
|
5 |
* Author: Automattic, Dekode, Facebook
|
6 |
* Author URI: https://vip.wordpress.com/plugins/instant-articles/
|
7 |
+
* Version: 4.0.6
|
8 |
* Text Domain: instant-articles
|
9 |
* License: GPLv2
|
10 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
68 |
|
69 |
defined( 'ABSPATH' ) || die( 'Shame on you' );
|
70 |
|
71 |
+
define( 'IA_PLUGIN_VERSION', '4.0.6' );
|
72 |
define( 'IA_PLUGIN_PATH_FULL', __FILE__ );
|
73 |
define( 'IA_PLUGIN_PATH', plugin_basename( __FILE__ ) );
|
74 |
define( 'IA_PLUGIN_FILE_BASENAME', pathinfo( __FILE__, PATHINFO_FILENAME ) );
|
419 |
|
420 |
Instant_Articles_Wizard::init();
|
421 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
422 |
function invalidate_post_transformation_info_cache( $post_id, $post ) {
|
423 |
// These post metas are caches on the calculations made to decide if
|
424 |
// a post is in good state to be converted to an Instant Article or not
|
meta-box/class-instant-articles-meta-box.php
CHANGED
@@ -10,7 +10,6 @@
|
|
10 |
use Facebook\InstantArticles\Client\Client;
|
11 |
use Facebook\InstantArticles\Client\InstantArticleStatus;
|
12 |
use Facebook\InstantArticles\Client\ServerMessage;
|
13 |
-
use Facebook\Exceptions\FacebookResponseException;
|
14 |
|
15 |
/**
|
16 |
* Class responsible for drawing the meta box on the post edit page
|
@@ -91,26 +90,31 @@ class Instant_Articles_Meta_Box {
|
|
91 |
$ajax_nonce = wp_create_nonce( "instant-articles-force-submit-" . $post_id );
|
92 |
$post = get_post( $post_id );
|
93 |
$adapter = new Instant_Articles_Post( $post );
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
die();
|
116 |
}
|
10 |
use Facebook\InstantArticles\Client\Client;
|
11 |
use Facebook\InstantArticles\Client\InstantArticleStatus;
|
12 |
use Facebook\InstantArticles\Client\ServerMessage;
|
|
|
13 |
|
14 |
/**
|
15 |
* Class responsible for drawing the meta box on the post edit page
|
90 |
$ajax_nonce = wp_create_nonce( "instant-articles-force-submit-" . $post_id );
|
91 |
$post = get_post( $post_id );
|
92 |
$adapter = new Instant_Articles_Post( $post );
|
93 |
+
|
94 |
+
try {
|
95 |
+
$article = $adapter->to_instant_article();
|
96 |
+
$canonical_url = $adapter->get_canonical_url();
|
97 |
+
$published = ( 'publish' === $post->post_status );
|
98 |
+
$dev_mode = false;
|
99 |
+
$force_submit = get_post_meta( $post_id, IA_PLUGIN_FORCE_SUBMIT_KEY, true );
|
100 |
+
$instant_articles_should_submit_post_filter = apply_filters( 'instant_articles_should_submit_post', true, $adapter );
|
101 |
+
|
102 |
+
Instant_Articles_Wizard::menu_items();
|
103 |
+
$settings_page_href = Instant_Articles_Wizard::get_url();
|
104 |
+
|
105 |
+
$publishing_settings = Instant_Articles_Option_Publishing::get_option_decoded();
|
106 |
+
$publish_with_warnings = isset( $publishing_settings[ 'publish_with_warnings' ] ) ? $publishing_settings[ 'publish_with_warnings' ] : false;
|
107 |
+
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
108 |
+
$publishing_settings = Instant_Articles_Option_Publishing::get_option_decoded();
|
109 |
+
|
110 |
+
$dev_mode = isset( $publishing_settings['dev_mode'] )
|
111 |
+
? ( $publishing_settings['dev_mode'] ? true : false )
|
112 |
+
: false;
|
113 |
+
|
114 |
+
include( dirname( __FILE__ ) . '/meta-box-template.php' );
|
115 |
+
} catch (Exception $e) {
|
116 |
+
include( dirname( __FILE__ ) . '/meta-box-error.php' );
|
117 |
+
}
|
118 |
|
119 |
die();
|
120 |
}
|
meta-box/meta-box-error.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Facebook Instant Articles for WP.
|
4 |
+
* This source code is licensed under the license found in the
|
5 |
+
* LICENSE file in the root directory of this source tree.
|
6 |
+
*
|
7 |
+
* @package default
|
8 |
+
*/
|
9 |
+
?>
|
10 |
+
<p>An unkown error occurred while transforming the article. Please verify your rules configuration is correct.</p>
|
meta-box/meta-box-template.php
CHANGED
@@ -22,7 +22,7 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
22 |
<p>
|
23 |
<b>
|
24 |
<span class="dashicons dashicons-yes"></span>
|
25 |
-
This post will be available as
|
26 |
</b>
|
27 |
</p>
|
28 |
<hr>
|
@@ -30,7 +30,7 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
30 |
<p>
|
31 |
<b>
|
32 |
<span class="dashicons dashicons-no-alt"></span>
|
33 |
-
This post will not be
|
34 |
</b>
|
35 |
</p>
|
36 |
<hr>
|
@@ -38,7 +38,7 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
38 |
<p>
|
39 |
<b>
|
40 |
<span class="dashicons dashicons-media-document"></span>
|
41 |
-
This post will be
|
42 |
</b>
|
43 |
</p>
|
44 |
<hr>
|
@@ -46,7 +46,7 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
46 |
<p>
|
47 |
<b>
|
48 |
<span class="dashicons dashicons-no-alt"></span>
|
49 |
-
This post will not be
|
50 |
</b>
|
51 |
</p>
|
52 |
<hr>
|
@@ -54,7 +54,7 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
54 |
<p>
|
55 |
<b>
|
56 |
<span class="dashicons dashicons-no-alt"></span>
|
57 |
-
This post will not be
|
58 |
</b>
|
59 |
</p>
|
60 |
<hr>
|
@@ -71,7 +71,7 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
71 |
<p>
|
72 |
<b>
|
73 |
<span class="dashicons dashicons-no-alt"></span>
|
74 |
-
This post will not be
|
75 |
</b>
|
76 |
</p>
|
77 |
<hr>
|
22 |
<p>
|
23 |
<b>
|
24 |
<span class="dashicons dashicons-yes"></span>
|
25 |
+
This post will be available as Instant Article once it is shared on Facebook.
|
26 |
</b>
|
27 |
</p>
|
28 |
<hr>
|
30 |
<p>
|
31 |
<b>
|
32 |
<span class="dashicons dashicons-no-alt"></span>
|
33 |
+
This post will not be available as Instant Article due to a rule created in your site.
|
34 |
</b>
|
35 |
</p>
|
36 |
<hr>
|
38 |
<p>
|
39 |
<b>
|
40 |
<span class="dashicons dashicons-media-document"></span>
|
41 |
+
This post will be available as Instant Article once it is published and shared on Facebook.
|
42 |
</b>
|
43 |
</p>
|
44 |
<hr>
|
46 |
<p>
|
47 |
<b>
|
48 |
<span class="dashicons dashicons-no-alt"></span>
|
49 |
+
This post will not be available as Instant Article because it is missing a title.
|
50 |
</b>
|
51 |
</p>
|
52 |
<hr>
|
54 |
<p>
|
55 |
<b>
|
56 |
<span class="dashicons dashicons-no-alt"></span>
|
57 |
+
This post will not be available as Instant Article because it is missing content.
|
58 |
</b>
|
59 |
</p>
|
60 |
<hr>
|
71 |
<p>
|
72 |
<b>
|
73 |
<span class="dashicons dashicons-no-alt"></span>
|
74 |
+
This post will not be available as Instant Article because the transformation raised some warnings.
|
75 |
</b>
|
76 |
</p>
|
77 |
<hr>
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: trrine, olethomas, bjornjohansen, dekode, automattic, facebook
|
|
3 |
Tags: instant articles, facebook, mobile
|
4 |
Requires at least: 4.3
|
5 |
Tested up to: 4.8
|
6 |
-
Stable tag: 4.0.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -86,7 +86,17 @@ Usually simply visiting the permalinks settings page in the WordPress dashboard
|
|
86 |
== Changelog ==
|
87 |
## Change Log
|
88 |
|
89 |
-
### 4.0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
- [#750](https://github.com/automattic/facebook-instant-articles-wp/pull/750) Fix query limit and escaping on AMP generation (@diegoquinteiro)
|
91 |
|
92 |
### 4.0.4 (2017/07/27 20:14 +00:00)
|
3 |
Tags: instant articles, facebook, mobile
|
4 |
Requires at least: 4.3
|
5 |
Tested up to: 4.8
|
6 |
+
Stable tag: 4.0.6
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
86 |
== Changelog ==
|
87 |
## Change Log
|
88 |
|
89 |
+
### 4.0.6 (2017/12/04 00:26 +00:00)
|
90 |
+
- [#814](https://github.com/automattic/facebook-instant-articles-wp/pull/814) Add default rule for Twitter blockquote (@pestevez)
|
91 |
+
- [#806](https://github.com/automattic/facebook-instant-articles-wp/pull/806) Clarify requirement of site connection in README (@pestevez)
|
92 |
+
- [#798](https://github.com/automattic/facebook-instant-articles-wp/pull/798) remove article rescrape code (@timjacobi)
|
93 |
+
- [#777](https://github.com/automattic/facebook-instant-articles-wp/pull/777) update instructions (@timjacobi)
|
94 |
+
- [#778](https://github.com/automattic/facebook-instant-articles-wp/pull/778) Add label definitions (@timjacobi)
|
95 |
+
- [#792](https://github.com/automattic/facebook-instant-articles-wp/pull/792) Change meta box and readme so user doesn't think IAs are actually submitted to Facebook (@timjacobi)
|
96 |
+
- [#797](https://github.com/automattic/facebook-instant-articles-wp/pull/797) Display error message if meta box can't be loaded (@timjacobi)
|
97 |
+
- [#775](https://github.com/automattic/facebook-instant-articles-wp/pull/775) Adds caching to instant_articles_embed_oembed_html (@emrikol)
|
98 |
+
|
99 |
+
### 4.0.5 (2017/08/24 19:08 +00:00)
|
100 |
- [#750](https://github.com/automattic/facebook-instant-articles-wp/pull/750) Fix query limit and escaping on AMP generation (@diegoquinteiro)
|
101 |
|
102 |
### 4.0.4 (2017/07/27 20:14 +00:00)
|
rules-configuration.json
CHANGED
@@ -143,6 +143,23 @@
|
|
143 |
]
|
144 |
}
|
145 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
}, {
|
147 |
"class": "IgnoreRule",
|
148 |
"selector" : "script"
|
143 |
]
|
144 |
}
|
145 |
}
|
146 |
+
}, {
|
147 |
+
"class": "InteractiveRule",
|
148 |
+
"selector" : "blockquote.twitter-tweet",
|
149 |
+
"properties" : {
|
150 |
+
"interactive.iframe" : {
|
151 |
+
"type" : "multiple",
|
152 |
+
"children": [
|
153 |
+
{
|
154 |
+
"type": "element",
|
155 |
+
"selector": "blockquote"
|
156 |
+
}, {
|
157 |
+
"type": "next-sibling-element-of",
|
158 |
+
"selector": "blockquote"
|
159 |
+
}
|
160 |
+
]
|
161 |
+
}
|
162 |
+
}
|
163 |
}, {
|
164 |
"class": "IgnoreRule",
|
165 |
"selector" : "script"
|
vendor/composer/installed.json
CHANGED
@@ -31,86 +31,6 @@
|
|
31 |
"php"
|
32 |
]
|
33 |
},
|
34 |
-
{
|
35 |
-
"name": "squizlabs/php_codesniffer",
|
36 |
-
"version": "2.9.1",
|
37 |
-
"version_normalized": "2.9.1.0",
|
38 |
-
"source": {
|
39 |
-
"type": "git",
|
40 |
-
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
41 |
-
"reference": "dcbed1074f8244661eecddfc2a675430d8d33f62"
|
42 |
-
},
|
43 |
-
"dist": {
|
44 |
-
"type": "zip",
|
45 |
-
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62",
|
46 |
-
"reference": "dcbed1074f8244661eecddfc2a675430d8d33f62",
|
47 |
-
"shasum": ""
|
48 |
-
},
|
49 |
-
"require": {
|
50 |
-
"ext-simplexml": "*",
|
51 |
-
"ext-tokenizer": "*",
|
52 |
-
"ext-xmlwriter": "*",
|
53 |
-
"php": ">=5.1.2"
|
54 |
-
},
|
55 |
-
"require-dev": {
|
56 |
-
"phpunit/phpunit": "~4.0"
|
57 |
-
},
|
58 |
-
"time": "2017-05-22 02:43:20",
|
59 |
-
"bin": [
|
60 |
-
"scripts/phpcs",
|
61 |
-
"scripts/phpcbf"
|
62 |
-
],
|
63 |
-
"type": "library",
|
64 |
-
"extra": {
|
65 |
-
"branch-alias": {
|
66 |
-
"dev-master": "2.x-dev"
|
67 |
-
}
|
68 |
-
},
|
69 |
-
"installation-source": "dist",
|
70 |
-
"autoload": {
|
71 |
-
"classmap": [
|
72 |
-
"CodeSniffer.php",
|
73 |
-
"CodeSniffer/CLI.php",
|
74 |
-
"CodeSniffer/Exception.php",
|
75 |
-
"CodeSniffer/File.php",
|
76 |
-
"CodeSniffer/Fixer.php",
|
77 |
-
"CodeSniffer/Report.php",
|
78 |
-
"CodeSniffer/Reporting.php",
|
79 |
-
"CodeSniffer/Sniff.php",
|
80 |
-
"CodeSniffer/Tokens.php",
|
81 |
-
"CodeSniffer/Reports/",
|
82 |
-
"CodeSniffer/Tokenizers/",
|
83 |
-
"CodeSniffer/DocGenerators/",
|
84 |
-
"CodeSniffer/Standards/AbstractPatternSniff.php",
|
85 |
-
"CodeSniffer/Standards/AbstractScopeSniff.php",
|
86 |
-
"CodeSniffer/Standards/AbstractVariableSniff.php",
|
87 |
-
"CodeSniffer/Standards/IncorrectPatternException.php",
|
88 |
-
"CodeSniffer/Standards/Generic/Sniffs/",
|
89 |
-
"CodeSniffer/Standards/MySource/Sniffs/",
|
90 |
-
"CodeSniffer/Standards/PEAR/Sniffs/",
|
91 |
-
"CodeSniffer/Standards/PSR1/Sniffs/",
|
92 |
-
"CodeSniffer/Standards/PSR2/Sniffs/",
|
93 |
-
"CodeSniffer/Standards/Squiz/Sniffs/",
|
94 |
-
"CodeSniffer/Standards/Zend/Sniffs/"
|
95 |
-
]
|
96 |
-
},
|
97 |
-
"notification-url": "https://packagist.org/downloads/",
|
98 |
-
"license": [
|
99 |
-
"BSD-3-Clause"
|
100 |
-
],
|
101 |
-
"authors": [
|
102 |
-
{
|
103 |
-
"name": "Greg Sherwood",
|
104 |
-
"role": "lead"
|
105 |
-
}
|
106 |
-
],
|
107 |
-
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
108 |
-
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
109 |
-
"keywords": [
|
110 |
-
"phpcs",
|
111 |
-
"standards"
|
112 |
-
]
|
113 |
-
},
|
114 |
{
|
115 |
"name": "facebook/facebook-instant-articles-sdk-extensions-in-php",
|
116 |
"version": "v0.1.1",
|
@@ -163,6 +83,61 @@
|
|
163 |
"sdk"
|
164 |
]
|
165 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
{
|
167 |
"name": "facebook/graph-sdk",
|
168 |
"version": "5.6.0",
|
@@ -223,61 +198,6 @@
|
|
223 |
"sdk"
|
224 |
]
|
225 |
},
|
226 |
-
{
|
227 |
-
"name": "symfony/css-selector",
|
228 |
-
"version": "v2.8.25",
|
229 |
-
"version_normalized": "2.8.25.0",
|
230 |
-
"source": {
|
231 |
-
"type": "git",
|
232 |
-
"url": "https://github.com/symfony/css-selector.git",
|
233 |
-
"reference": "ba3204654efa779691fac9e948a96b4a7067e4ab"
|
234 |
-
},
|
235 |
-
"dist": {
|
236 |
-
"type": "zip",
|
237 |
-
"url": "https://api.github.com/repos/symfony/css-selector/zipball/ba3204654efa779691fac9e948a96b4a7067e4ab",
|
238 |
-
"reference": "ba3204654efa779691fac9e948a96b4a7067e4ab",
|
239 |
-
"shasum": ""
|
240 |
-
},
|
241 |
-
"require": {
|
242 |
-
"php": ">=5.3.9"
|
243 |
-
},
|
244 |
-
"time": "2017-05-01 14:31:55",
|
245 |
-
"type": "library",
|
246 |
-
"extra": {
|
247 |
-
"branch-alias": {
|
248 |
-
"dev-master": "2.8-dev"
|
249 |
-
}
|
250 |
-
},
|
251 |
-
"installation-source": "dist",
|
252 |
-
"autoload": {
|
253 |
-
"psr-4": {
|
254 |
-
"Symfony\\Component\\CssSelector\\": ""
|
255 |
-
},
|
256 |
-
"exclude-from-classmap": [
|
257 |
-
"/Tests/"
|
258 |
-
]
|
259 |
-
},
|
260 |
-
"notification-url": "https://packagist.org/downloads/",
|
261 |
-
"license": [
|
262 |
-
"MIT"
|
263 |
-
],
|
264 |
-
"authors": [
|
265 |
-
{
|
266 |
-
"name": "Jean-François Simon",
|
267 |
-
"email": "jeanfrancois.simon@sensiolabs.com"
|
268 |
-
},
|
269 |
-
{
|
270 |
-
"name": "Fabien Potencier",
|
271 |
-
"email": "fabien@symfony.com"
|
272 |
-
},
|
273 |
-
{
|
274 |
-
"name": "Symfony Community",
|
275 |
-
"homepage": "https://symfony.com/contributors"
|
276 |
-
}
|
277 |
-
],
|
278 |
-
"description": "Symfony CssSelector Component",
|
279 |
-
"homepage": "https://symfony.com"
|
280 |
-
},
|
281 |
{
|
282 |
"name": "facebook/facebook-instant-articles-sdk-php",
|
283 |
"version": "v1.6.2",
|
@@ -331,6 +251,86 @@
|
|
331 |
"sdk"
|
332 |
]
|
333 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
{
|
335 |
"name": "wp-coding-standards/wpcs",
|
336 |
"version": "0.12.0",
|
31 |
"php"
|
32 |
]
|
33 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
{
|
35 |
"name": "facebook/facebook-instant-articles-sdk-extensions-in-php",
|
36 |
"version": "v0.1.1",
|
83 |
"sdk"
|
84 |
]
|
85 |
},
|
86 |
+
{
|
87 |
+
"name": "symfony/css-selector",
|
88 |
+
"version": "v2.8.25",
|
89 |
+
"version_normalized": "2.8.25.0",
|
90 |
+
"source": {
|
91 |
+
"type": "git",
|
92 |
+
"url": "https://github.com/symfony/css-selector.git",
|
93 |
+
"reference": "ba3204654efa779691fac9e948a96b4a7067e4ab"
|
94 |
+
},
|
95 |
+
"dist": {
|
96 |
+
"type": "zip",
|
97 |
+
"url": "https://api.github.com/repos/symfony/css-selector/zipball/ba3204654efa779691fac9e948a96b4a7067e4ab",
|
98 |
+
"reference": "ba3204654efa779691fac9e948a96b4a7067e4ab",
|
99 |
+
"shasum": ""
|
100 |
+
},
|
101 |
+
"require": {
|
102 |
+
"php": ">=5.3.9"
|
103 |
+
},
|
104 |
+
"time": "2017-05-01 14:31:55",
|
105 |
+
"type": "library",
|
106 |
+
"extra": {
|
107 |
+
"branch-alias": {
|
108 |
+
"dev-master": "2.8-dev"
|
109 |
+
}
|
110 |
+
},
|
111 |
+
"installation-source": "dist",
|
112 |
+
"autoload": {
|
113 |
+
"psr-4": {
|
114 |
+
"Symfony\\Component\\CssSelector\\": ""
|
115 |
+
},
|
116 |
+
"exclude-from-classmap": [
|
117 |
+
"/Tests/"
|
118 |
+
]
|
119 |
+
},
|
120 |
+
"notification-url": "https://packagist.org/downloads/",
|
121 |
+
"license": [
|
122 |
+
"MIT"
|
123 |
+
],
|
124 |
+
"authors": [
|
125 |
+
{
|
126 |
+
"name": "Jean-François Simon",
|
127 |
+
"email": "jeanfrancois.simon@sensiolabs.com"
|
128 |
+
},
|
129 |
+
{
|
130 |
+
"name": "Fabien Potencier",
|
131 |
+
"email": "fabien@symfony.com"
|
132 |
+
},
|
133 |
+
{
|
134 |
+
"name": "Symfony Community",
|
135 |
+
"homepage": "https://symfony.com/contributors"
|
136 |
+
}
|
137 |
+
],
|
138 |
+
"description": "Symfony CssSelector Component",
|
139 |
+
"homepage": "https://symfony.com"
|
140 |
+
},
|
141 |
{
|
142 |
"name": "facebook/graph-sdk",
|
143 |
"version": "5.6.0",
|
198 |
"sdk"
|
199 |
]
|
200 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
{
|
202 |
"name": "facebook/facebook-instant-articles-sdk-php",
|
203 |
"version": "v1.6.2",
|
251 |
"sdk"
|
252 |
]
|
253 |
},
|
254 |
+
{
|
255 |
+
"name": "squizlabs/php_codesniffer",
|
256 |
+
"version": "2.9.1",
|
257 |
+
"version_normalized": "2.9.1.0",
|
258 |
+
"source": {
|
259 |
+
"type": "git",
|
260 |
+
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
261 |
+
"reference": "dcbed1074f8244661eecddfc2a675430d8d33f62"
|
262 |
+
},
|
263 |
+
"dist": {
|
264 |
+
"type": "zip",
|
265 |
+
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62",
|
266 |
+
"reference": "dcbed1074f8244661eecddfc2a675430d8d33f62",
|
267 |
+
"shasum": ""
|
268 |
+
},
|
269 |
+
"require": {
|
270 |
+
"ext-simplexml": "*",
|
271 |
+
"ext-tokenizer": "*",
|
272 |
+
"ext-xmlwriter": "*",
|
273 |
+
"php": ">=5.1.2"
|
274 |
+
},
|
275 |
+
"require-dev": {
|
276 |
+
"phpunit/phpunit": "~4.0"
|
277 |
+
},
|
278 |
+
"time": "2017-05-22 02:43:20",
|
279 |
+
"bin": [
|
280 |
+
"scripts/phpcs",
|
281 |
+
"scripts/phpcbf"
|
282 |
+
],
|
283 |
+
"type": "library",
|
284 |
+
"extra": {
|
285 |
+
"branch-alias": {
|
286 |
+
"dev-master": "2.x-dev"
|
287 |
+
}
|
288 |
+
},
|
289 |
+
"installation-source": "dist",
|
290 |
+
"autoload": {
|
291 |
+
"classmap": [
|
292 |
+
"CodeSniffer.php",
|
293 |
+
"CodeSniffer/CLI.php",
|
294 |
+
"CodeSniffer/Exception.php",
|
295 |
+
"CodeSniffer/File.php",
|
296 |
+
"CodeSniffer/Fixer.php",
|
297 |
+
"CodeSniffer/Report.php",
|
298 |
+
"CodeSniffer/Reporting.php",
|
299 |
+
"CodeSniffer/Sniff.php",
|
300 |
+
"CodeSniffer/Tokens.php",
|
301 |
+
"CodeSniffer/Reports/",
|
302 |
+
"CodeSniffer/Tokenizers/",
|
303 |
+
"CodeSniffer/DocGenerators/",
|
304 |
+
"CodeSniffer/Standards/AbstractPatternSniff.php",
|
305 |
+
"CodeSniffer/Standards/AbstractScopeSniff.php",
|
306 |
+
"CodeSniffer/Standards/AbstractVariableSniff.php",
|
307 |
+
"CodeSniffer/Standards/IncorrectPatternException.php",
|
308 |
+
"CodeSniffer/Standards/Generic/Sniffs/",
|
309 |
+
"CodeSniffer/Standards/MySource/Sniffs/",
|
310 |
+
"CodeSniffer/Standards/PEAR/Sniffs/",
|
311 |
+
"CodeSniffer/Standards/PSR1/Sniffs/",
|
312 |
+
"CodeSniffer/Standards/PSR2/Sniffs/",
|
313 |
+
"CodeSniffer/Standards/Squiz/Sniffs/",
|
314 |
+
"CodeSniffer/Standards/Zend/Sniffs/"
|
315 |
+
]
|
316 |
+
},
|
317 |
+
"notification-url": "https://packagist.org/downloads/",
|
318 |
+
"license": [
|
319 |
+
"BSD-3-Clause"
|
320 |
+
],
|
321 |
+
"authors": [
|
322 |
+
{
|
323 |
+
"name": "Greg Sherwood",
|
324 |
+
"role": "lead"
|
325 |
+
}
|
326 |
+
],
|
327 |
+
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
328 |
+
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
329 |
+
"keywords": [
|
330 |
+
"phpcs",
|
331 |
+
"standards"
|
332 |
+
]
|
333 |
+
},
|
334 |
{
|
335 |
"name": "wp-coding-standards/wpcs",
|
336 |
"version": "0.12.0",
|