Enable Facebook Instant Articles on your WordPress site.
PHP HTML Shell CSS JavaScript
Latest commit 2a1ce11 Jul 17, 2018
Permalink
Failed to load latest commit information.
.github update instructions Oct 4, 2017
assets Changed assets and created bullet nav bar Aug 11, 2016
bin Add generated test files Nov 17, 2015
compat Load GTM4WP frontend.php if not already. This fixes edge case around … May 21, 2018
css Added tranformation warning indicator column Mar 9, 2018
js Clean up new ingestion flow: May 29, 2017
languages Ad de_DE May 22, 2016
meta-box remove unused use statement Nov 8, 2017
tests Add default rule for Twitter blockquote Nov 10, 2017
wizard Merge branch 'master' into feature/transformation-status-indicators May 9, 2018
.gitignore removed composer.lock from .ignored and commited it May 30, 2017
.travis.yml remove hhvm from travis Jun 26, 2017
CHANGELOG.md Bump version to 4.1.1 Jul 17, 2018
LABELS.md Add label definitions Oct 4, 2017
LICENSE Add the LICENSE file (GPLv2) Nov 27, 2015
README.md Updating description for the plugin to reference IA eligibility, MES … Jun 28, 2018
class-instant-articles-amp-markup.php Fix query limit and escaping on AMP generation Aug 14, 2017
class-instant-articles-post.php refactored the way to apply the filter Feb 1, 2018
class-instant-articles-signer.php Uses correct API definition in production Jun 25, 2018
compat.php Load GTM4WP frontend.php if not already. This fixes edge case around … May 21, 2018
composer.json Updated minimal version of sdk Mar 23, 2018
composer.lock Updated minimal version of sdk Mar 23, 2018
embeds.php Replaced spaces for tabs Jul 12, 2018
facebook-instant-articles.php Bump version to 4.1.1 Jul 17, 2018
feed-template.php Add to allow developers control of whether the post should be submitt… Oct 17, 2016
phpunit.xml Setup on composer for the new dependencies to run the phpunit tests Sep 2, 2016
readme.txt Bump version to 4.1.1 Jul 17, 2018
release.sh Updating release script helper messages Jul 16, 2018
rules-configuration.json Move the Grammarly rule up Jun 11, 2018
wpcom-helper.php Fix the post reference too Jul 12, 2017

README.md

Build Status

Instant Articles for WP

Enable Instant Articles for Facebook on your WordPress site.

Plugin activity

Throughput Graph

Description

This plugin adds support for Instant Articles for Facebook, which is a new way for publishers to distribute fast, interactive stories on Facebook. Instant Articles are preloaded in the Facebook mobile app so they load instantly.

With the plugin active, a new menu will be available for you to connect to your Facebook Page and start publishing your Instant Articles. You'll also see the status of each Instant Articles submission on the edit page of your posts.

A best effort is made to generate valid Instant Article markup from your posts' content/metadata and publish it to Facebook. The plugin knows how to transform your posts' markup from a set of rules which forms a mapping between elements in you source markup and the valid Instant Article components. We refer to this “glue” between the two as the Transformer Rules.

Built-in to the plugin are many pre-defined transformer rules which aims to cover standard WordPress installations. If your WordPress content contains elements which are not covered by the built-in ruleset, you can define your own additional rules to extend or override the defaults in the Settings of this plugin, under: Plugin Configuration > Publishing Settings > Custom transformer rules.

Access to Instant Articles

The current criteria for access to Instant Articles are:

  • your Facebook Page must have an established presence of at least 90 days
  • your content adheres to the Instant Article Policies

Before your Instant Articles can be published on Facebook, your feed must undergo an initial review and approval. Facebook requires a minimum number of 10 articles in your feed before being eligible for review. The review process checks that your draft Instant Articles are properly formatted, have content consistency with their mobile web counterparts, and adhere to the community standards and content policies.

It's important to note that if you use meta fields to add extra text, images or videos to your Posts, Facebook will expect you to add these to your Instant Articles output too. This plugin includes hooks to help you do that.

See Facebook's documentation for full details of the submission process.

Once your feed has been approved, new posts will automatically be taken live on Instant Articles, and existing posts will be taken live once you update them. In order to stay in the Instant Articles program, you must remain active by creating new content and maintaining a minimal readership.

Installation

  1. Run composer install on the root of the plugin folder. Make sure you have Composer installed.
  2. Upload the folder to the /wp-content/plugins/ directory
  3. Activate the plugin through the 'Plugins' menu in WordPress

Frequently Asked Questions

Why is there content from my post missing in the generated Instant Article?

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.

Why doesn't my post appear in the list of Instant Articles in the publisher tools? Your posts are imported to your library when they are shared on Facebook for the first time.

Alternatively, you can trigger a manual scrape by pasting your URL on our Share Debugger

Only Instant Articles with URLs in domains you have claimed will show up in the Publishing Tools section. In the Instant Articles module for my post, what does the “This post was transformed into an Instant Article with some warnings” message mean?

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.

What does the “No rules defined for ____ in the context of ____” warning mean?

This plugin transforms your post into an Instant Article by matching markup in your content to one of the components available in Instant Articles markup. Although the plugin contains many built-in rules to handle common cases, there may be markup in your post which is not recognized by these existing rules. In this case, you may be required to define some of your own rules. See below for more details about where and how.

How do I define my own transformer rules so that content from my site is rendered appropriately in an Instant Article?

Your custom rules can be defined in the Settings of this plugin, under: Plugin Configuration > Publishing Settings > Custom transformer rules. More detailed instructions about all the options available is documented in the Custom Transformer Rules section of the Facebook Instant Articles SDK.

I know of a custom transformer rule which is pretty common in the community. How can it be included by default in the plugin?

You can propose popular transformer rules to be included in the plugin by suggesting it on GitHub.

How do I post articles to Instant Articles after plugin is installed?

In order to import your posts to your Instant Articles library on Facebook you need to Connect Your Site first. Then either share your posts on your page or use the Sharing Debugger to scrape them. After you have 10 articles imported, you will be able to submit them for review.

How do I change the feed slug/URL if I'm using the RSS integration?

To change the feed slug, set the constant INSTANT_ARTICLES_SLUG to whatever you like. If you do, remember to flush the rewrite rules afterwards. By default it is set to instant-articles which usually will give you a feed URL set to /feed/instant-articles

How do I flush the rewrite rules after changing the feed slug?

Usually simply visiting the permalinks settings page in the WordPress dashboard will do the trick (/wp-admin/options-permalink.php)

Development Environment

You are more than welcome to help us to make this plugin even better!

Setup SDK and WP to use the Github code

Most of development and debugging we use the master or any feature branch for the development of WP plugin. Sometimes it needs specific or newest version of the SDK to match all the new features that are release candidates to every new release of SDK and WP plugin.

The SDK is also under development @ GitHub: https://github.com/facebook/facebook-instant-articles-sdk-php

Pre-requisites

  • Have PHP installed (you can install with homebrew)
  • Have WebServer installed (you can use MAMP)
  • Have WP installed (downloading from wordpress.org)

Setup

Clone both repositories into your developer folder (ex: ~/instant-articles).

git clone git@github.com:Automattic/facebook-instant-articles-wp.git
git clone git@github.com:facebook/facebook-instant-articles-sdk-php.git

Build both source folders:

cd facebook-instant-articles-sdk-php
composer install

cd ../facebook-instant-articles-wp
composer install

Now remove the build from your WordPress, so it will include the code you've just built.

rm -rf vendor/facebook/facebook-instant-articles-sdk-php
ln -s ~/facebook-instant-articles-sdk-php vendor/facebook/facebook-instant-articles-sdk-php

and now you can create a link inside your /wp-content/plugins to your folder

ln -s ~/facebook-instant-articles-wp wp-content/plugins/facebook-instant-articles-wp