The ‘Publish to Apple News’ plugin enables WordPress sites with approved Apple News channels to publish content directly on Apple News. Note that Apple News is a distribution platform for professional publications of a journalistic nature, and not all applications will be accepted.
- Convert your WordPress content into Apple News format automatically.
- Create a custom design for your Apple News content with no programming knowledge required.
- Automatically or manually publish posts from WordPress to Apple News.
- Control individual posts with options to publish, update, or delete.
- Publish individual posts or in bulk.
- Handles image galleries and popular embeds like YouTube and Vimeo that are supported by Apple News.
- Automatically adjust advertisement settings.
To enable content from your WordPress site to be published to your Apple News channel, you must obtain and enter Apple News API credentials from Apple.
“Publish To Apple News” 是一個開源的軟體。以下的人對這個外掛作出了貢獻。貢獻者
- Bugfix: Fixes a bug where the layout body-layout-last is not added to the list of layouts if the body content ends with something other than a paragraph.
- Bugfix: Fixes a bug where galleries were no longer being properly converted to Apple News Format due to a change in gallery markup that was introduced in WordPress 5.8.
- Bugfix: Fixes an issue with enqueueing the Gutenberg PluginSidebar script on Windows webservers.
- Bugfix: Fixes an error in class-components.php if the function is called with an empty list of components.
- Bugfix: Fixes an issue where images with different URLs but the same filename are bundled with the same name when not using remote images, which can lead to images appearing out of order.
- Bugfix: Fixes an issue with some of the example themes where pullquotes would create invalid JSON due to the default-pullquote textStyle not being set. Props to @soulseekah for the fix.
- Bugfix: Fixes an issue where a custom filter is used to make all image URLs root-relative when using featured images to populate the Cover component, which was leading to an INVALID_DOCUMENT error from the News API due to the root-relative URL (e.g., /path/to/my/image.jpg instead of https://example.org/path/to/my/image.jpg).
- Bugfix: Fixes an issue with images not deduping when Jetpack Site Accelerator (Photon) is enabled.
- Bugfix: Synchronizes the list of available fonts to what is actually available.
- Bugfix: Fixes display of date pickers in the article list.
- Bugfix: Fixes apple_news_is_exporting function to make it fire for both downloading JSON in the article list and pushing articles to Apple via the API.
- Bugfix: Fixes an editor crash when using Gutenberg and a custom post type that does not support postmeta (custom-fields).
- Bugfix: Fixes an issue with embedding YouTube and Vimeo videos when using Gutenberg blocks.
- Bugfix: Fixes an issue where making a mistake in customizing JSON results in the custom JSON being reset to the default value rather than the previously saved value.
- Enhancement: Added support for mailto:, music://, musics://, stocks:// and webcal:// links.
- Enhancement: Added an option and a filter for skipping auto-push of posts with certain taxonomy terms.
- Enhancement: Added support for HTML tags when customizing theme JSON.
- Enhancement: Added an author component for author without date.
- Enhancement: Added a date component for date without author byline.
- Enhancement: Added support for determining the aspect ratio of an embedded video based on the value configured on the embed block.
- Bugfix: Moved custom metadata fields to the request level rather than the article level to align them with existing metadata properties like isPaid and isHidden.
- Bugfix: Removed JSON alerts setting, as it no longer does anything.
- Enhancement: Shows a confirmation message to the user when channel credentials are successfully saved, since the channel ID, key, and secret fields are no longer visible following the update to using .papi files to configure credentials.
- Bugfix: Fixed a bug with .papi file upload that occurred when any of the three fields (channel_id, key, secret) contained a character that was not alphanumeric or a hyphen (e.g., /), which would cause the field to get cut short, thereby causing API requests to fail.
- Enhancement: Added support for HLS video (.m3u8) in thumbnails.
- Enhancement: Added support for custom article metadata.
- Enhancement: Added a slug component (props to @hughiemolloy for the initial work).
- Enhancement: Added support for HTML in headings.
- Enhancement: Added support for uploading .papi files to configure channel credentials.
- Enhancement: Added article authors to the
metadata.authorsproperty so they display in the article listing view on Apple News.
- Enhancement: Added a new filter for whether to enable Co-Authors Plus support, which defaults to
coauthorsfunction is defined (the same as the previous behavior, but now the setting is filterable).
- Enhancement: Updated the plugin description to more clearly articulate its purpose and intended users.
- Bugfix: Fixed a bug with applying automatic section mappings based on taxonomy in a Gutenberg context.
- Bugfix: Fixed a bug with video metadata parsing related to having a
videoelement with a
srcattribute rather than
- Bugfix: Fixed an error that would occur if sections could not be fetched from the API, where the function being called to handle the error didn’t exist.
- Bugfix: Removed unnecessary argument to
libxml_clear_errorswhich was causing an error in PHP 8.
- Enhancement: Clarifies source of admin messages coming from the plugin to ensure that they say “Apple News.”
- Enhancement: Adds checks for plugin initialization before making REST responses.
- Enhancement: Adds documentation to all hooks, which has been synchronized with the wiki.
- Bugfix: Resolves an issue where API information (e.g., article ID) were removed upon save when using the Gutenberg editor, which would cause articles in WordPress to become unlinked from articles in Apple News, and would result in a duplicate article error if publishing again was attempted.
- Bugfix: Uses new
wp_after_insert_posthook, if available (was added in WP 5.6) to ensure that postmeta and terms are saved before running an autosync to Apple.
- Bugfix: Pullquote styles are now being included properly if alignments other than the default are used.
- Bugfix: Stops using
get_user_attributeon VIP Go, preferring
- Bugfix: Resolves an error when using theme preview related to a bad script localization reference.
- Bugfix: Ensures that notices are available via the REST API for custom post types.
- Bugfix: Replaces admin sections error display function.
- Bugfix: Updates
pluginSidebarsections default values to prevent save errors in some cases.
- Bugfix: Outdated links to Apple News docs have been replaced with their modern equivalents.
- Enhancement: Adds support for Dark Mode, including the ability to customize Dark Mode colors in a theme.
- Enhancement: The cover component now supports captions. If a featured image is used for the cover, the caption will come from the attachment itself in the database. If the first image from the content is used, the caption will be read from the HTML. There is also a new filter, apple_news_exporter_cover_caption, which allows for filtering of the caption text.
- Enhancement: Adds a new End of Article module, available via the Customize JSON feature, to allow publishers to insert content at the end of every article, customized per theme.
- Enhancement: HTML is now allowed in lightbox image captions.
- Enhancement: Allows configuration of cover images in the sidebar / metabox explicitly, rather than pulling them out of the featured image or main content.
- Enhancement: Adds support for Brightcove videos via the Brightcove Video Connect plugin for videos added via either the Gutenberg block or the shortcode. Note that this feature will only work if you contact Apple support to link your Brightcove account with your Apple News channel.
- Enhancement: Replaces usage of the deprecated
advertisingSettingsobject with the new
autoplacement.advertisingobject. Bumps default advertisement frequency from 1 to 5 (out of 10).
- Enhancement: Adds an error to the notice bar if the
DATE_NOT_RECENTAPI error is encountered advising the user to synchronize the time on their server to restore API connectivity.
- Enhancement: Adds padding above and below
- Enhancement: Converts notices in a block editor context to native block editor notice components, rather than the previous custom implementation.
- Enhancement: In the block editor, warns when the post has unsaved changes, and publishing to Apple News would result in unsaved changes not being published.
- Bugfix: Removes Cover Art configuration, as Cover Art is no longer used by Apple.
- Bugfix: Fixes the logic in the default theme checker to properly check the configured values against the defaults and prompt the user if they are using the default theme that ships with Apple News without modification.
- Bugfix: Fixes a bug where renaming a theme would not carry over any changes made to the theme, and renaming the active theme would make it no longer active.
- Bugfix: If the same image is used for the featured image and the first image embedded into the post, it no longer shows up twice.
- Bugfix: Removed extra space between an image and its caption.
- Bugfix: If a custom excerpt is used, but the custom excerpt repeats text in its entirety from elsewhere in the article (e.g., the first paragraph), then the Intro component will be skipped. This prevents an issue where Apple will flag articles that contain repeated text due to the Intro component using a custom excerpt suitable in a WordPress context but not an Apple News context.
- Bugfix: Select menus are no longer oversized on the settings page.
- Updated filter name for
- Enhancement: Adds styles for Button elements that are links which are added by the Gutenberg editor.
- Enhancement: Bumps the Apple News Format version from 1.7 to 1.11 to make support for new features possible, like LinkButton.
- Fixes a bug where sections by category is not checked by default for new posts.
- Fixes visual bug when manual section selection are visible.
- Bugfix: Rolled back support for Button elements for now due to a problematic implementation.
- Enhancement: Added support for audio, video, and table captions in Gutenberg.
- Enhancement: Adds styles for Button elements that are links.
- Bugfix: Blockquotes using alignments other than left are now properly recognized.
- Bugfix: Facebook URLs inline within other elements no longer getting converted to Facebook embeds.
- Diversity and Inclusion: Replaced instances of “whitelist” with “allowlist” throughout the codebase, change head branch from “master” to “develop”. Language matters.
- Bump “tested up to” tag to 5.4.
- Upgrades node version used for compiling assets to version 12, and patches vulnerabilities reported via npm audit.
- Adds TikTok compatibility to the generic embed handler (props to @hrkhal for the fix).
- Fixes an undefined property notice when there is an error but no error message (props to @khoipro for the fix).
- Adds size attributes to select fields and API configuration fields for better readability (props to @paulschreiber for the fix).
- Fixes a bug where captions were not being correctly read from images.
- Adds a warning for the isPaid flag to prevent confusion if a channel is not set up for paid content.
- Fixes a bug where settings are not initialized to an array when the plugin is loaded via code.
- Bugfix: Resolves fatal error when trying to load posts that aren’t active in some cases.
- Bugfix: Adds check for some 5.0.0+ functions before attempting to execute.
- Bugfix: Adds fallback and additional checks for sidebarPlugin retrieval of post meta.
- Bugfix: Only makes REST request for post save when Gutenberg is enabled.
- Enhancement: Enqueues block editor scripts with
- Bugfix: Including the built pluginSidebar.js files with the WordPress.org distribution which were erroneously left off.
- Enhancement: Adds full support for Gutenberg. If Gutenberg is active for a post, uses a Gutenberg PluginSidebar to house all of the Apple News options rather than a metabox. Also adds support for new HTML generated by Gutenberg, including various embeds.
- Enhancement: Adds support for the isPaid flag to indicate that a post is part of News+ and requires a subscription to view.
- Enhancement: Set the default for Use Remote Images to Yes, as this should be the setting that all publishers use now that Apple News supports remote image URLs.
- Bugfix: Refreshes the nonce after re-authenticating to prevent data loss when Gutenberg is not active. Props to @hrkhal for the fix.
- Enhancement: Added the apple_news_notification_headers filter to allow headers to be added to the notification email message. Props to @paulschreiber for the addition.
- Bugfix: Improved handling of UTF-8 multibyte characters to provide better support for the French language.
- Updated the description that appears below the section selection checkboxes to more accurately explain the current behavior.
- Updated to the latest version of the phpcs and vipwpcs standards, resolving most issues, while allowlisting some rules for resolution in the next version. Props to @paulschreiber for doing most of the work here.
- Bugfix: Decodes HTML entities in URLs before performing remote file exists check for embedded media. Props to @kasparsd for the fix.
- Bugfix: Issues with making updates via the quick edit interface and on unsupported post types are now fixed, as the publish action bails out early if the nonce is not set, which occurs when the metabox does not load. Props to @danielbachhuber and @srtfisher for the fixes.
- Added ‘apple_news_should_post_autopublish’ filter to override automatic publish settings on a per-article basis. Props to @srtfisher for the update.
- Bugfix: Post types that were not registered with Publish to Apple News were failing the nonce check on publish/update because the metabox was not present. Refined the save_post hook to register only for post types with Publish to Apple News support to avoid this situation.
- Set HTML to the default output format (instead of Markdown) for new installs. HTML format is now recommended for all installs. Support for Markdown may be removed in a future version. Individual components now have a filter to toggle HTML support on or off for each component.
- Added support for HTML format to Heading and Quote components.
- Added support for tables (requires HTML support to be turned on) with new table styles defined in example themes, and intelligent defaults applied to existing themes based on comparable settings.
- Made Cover Art feature opt-in for new installs to avoid creating a plethora of additional image crops which may not be necessary. Sets the setting to enabled for existing installations during upgrade, since there is not a good way to know whether a user has utilized this feature without running a very expensive postmeta query.
- Added a “Refresh Sections” button on the Sections page to clear the cached settings list.
- Set the default publish and delete capabilities to the corresponding post publish and delete capabilities for the post type being edited, rather than requiring “manage_options,” which is typically an administrator-only capability. This allows users with the ability to publish posts to also publish those posts to Apple News.
- Removed overzealous check for invalid Unicode sequences. Over the past several releases, enhancements have been made to better identify and fix problems with content that would cause issues upon pushing to Apple News. Therefore, the check for invalid Unicode character sequences is now not providing much value, and is inhibiting valid content (including emoji) from being pushed to Apple News.
- Added a function (apple_news_is_exporting) for determining whether an export is happening, which can be used in themes and plugins to change behavior if a hook is being executed in the context of an Apple News request.
- Added context to the message that is displayed when a post push is skipped explaining why it was skipped.
- Added a framework for saving dismissed state of persistent admin notices (such as those that appear after an upgrade) so that the close button causes the notice to not appear again for that user.
- Set the language code from blog settings for document properties (thanks @ffffelix).
- Added support for the isHidden property (thanks @jonesmatthew).
- Added support for Jetpack Tiled Galleries.
- Swapped deprecated wpcom_vip_* functions for core versions.
- Added expand/collapse functionality to the theme editor to reduce scrolling between where settings are set and the preview area.
- Brought entire codebase up to WordPress coding standards, which is now being verified through PHP CodeSniffer on each pull request.
- Updated Travis configuration for more robust testing.
- Bumped minimum required version to PHP 5.6 due to incompatibility with certain tools (e.g., Composer) required for running builds and tests.
- Security: Added nonce verification to all remaining form data processing sections.
- Bugfix: Added a handler for WordPress.com/OpenGraph Facebook embeds so that they properly render as Facebook components instead of a blockquote.
- Bugfix: Addressed an issue with sanitization that did not properly strip out script tags that contain CDATA with a greater than symbol.
- Bugfix: Empty meta_component_order settings can now be saved properly on the theme edit screen.
- Bugfix: No longer assumes that any embed that isn’t YouTube is actually Vimeo. Performs a strict check for Vimeo embed signatures and drops the embed if it does not match known providers.
- Bugfix: Re-added erroneously removed apple_news_fonts_list hook.
- Bugfix: Fixed an error where the list of sections was occasionally being encoded as an object instead of an array.
- Bugfix: Fixed the undefined message warning if an article was deleted from iCloud, thereby breaking the linkage between the plugin and the Apple News API, to explain why the link was broken.
- Bugfix: Fixed undefined index and undefined variable notices in a few places.
- Bugfix: Fixed an assignment bug in class-admin-apple-post-sync.php (thanks @lgladdy and @dhanendran).
- Bugfix: Prevented empty text nodes from being added in a variety of ways, which was causing errors on publish in some cases, and unwanted extra space in articles in others.
- Bugfix: Prevented Apple News API timeouts from causing the entire WordPress install to hang by only using long remote request timeouts when making a POST request to the Apple News API.
- Bugfix: Fixed improper handling of several different types of links, such as empty URLs, malformed URLs, root-relative URLs, and anchor links.
- Bugfix: Properly decoded ampersands and other HTML-encoded entities when using Markdown format.
- Bugfix: Removed style tags and their contents where they appear inline.
- Moved JSON customizations to themes so that JSON can be customized on a per-theme basis.
- Enabled access to postmeta in custom JSON so that values from postmeta fields can be inserted into customized JSON.
- Removed all formatting settings from the settings option in favor of storing them in themes. This is a potentially breaking change if you are using custom code that relies on formatting settings stored in the settings option.
- Removed the option for JSON customization in favor of moving those settings to themes. This is a potentially breaking change if you are accessing the custom JSON option directly.
- Deprecated access of formatting settings using the Settings object.
- Added a new Theme object to handle all formatting settings.
- Bugfix: Fixed a bug where themes were not being automatically switched via section mappings.
- Bugfix: HTML in titles is now supported.
- Fixed a bug where HTML tags were being stripped before being sent to the API.
- Fixed a bug where older theme files couldn’t be imported if new formatting settings were added.
- WP Standards: Ensured all instances of in_array use the strict parameter
- WP Standards: Replaced all remaining instances of == with ===
- WP Standards: Replaced all remaining instances of != with !==
- WP Standards: Ensured all calls to wp_die with translated strings were escaped
- WP Standards: Added escaping in a few additional places
- WP Standards: Replaced all remaining instances of json_encode with wp_json_encode
- Bugfix: Root-relative URLs for images, audio, and video are now supported
- Bugfix: Images, audio, and video with blank or invalid URLs are no longer included, avoiding an error with the API
- Bugfix: Image blocks with multiple src attributes (e.g., when using a lazyload plugin with a raw <img> tag in the <noscript> block) are now intelligently probed
- Bugfix: Fixed version of PHPUnit at 5.7.* for PHP 7.* and 4.8.* for PHP 5.* in the Travis configuration to fix a bug with incompatibility with PHPUnit 6
- Bugfix: Set the base URL for the Apple News API to https://news-api.apple.com everywhere for better adherence to official guidance in the API docs (props to ffffelix for providing the initial PR)
- Bugfix: Made the administrator email on the settings screen no longer required if debug mode is set to “no”
- Bugfix: Converted the error that occurs when a list of sections cannot be retrieved from the API to a non-fatal to fix a problem where the content of the editor would appear white-on-white
- Bugfix: Resolved an error that occurs on some systems during plugin activation on the Add New screen due to a duplicated root plugin file in the WordPress.org version of the plugin
- Added an interface for customizing of component JSON
- Added support for making certain components inactive
- Added hanging punctuation option for pull quotes
- Added additional styling options for drop caps
- Added support for nested images in lists
- Added support for Instagram oEmbeds
- Updated the interface and workflow for customizing cover art
- Allowed mapping themes to Apple News sections
- Added support for videos in feed
- Added support for maturity rating
- Added support for cover art
- Added support for the Facebook component
- Added support for captions in galleries
- Bugfix for invalid JSON errors caused by non-breaking spaces and other Unicode separators
- Created Apple News themes and moved all formatting settings to themes
- Added support for sponsored content (isSponsored)
- Added ability to map categories to Apple News sections
- Split block and pull quote styling
- Allowed for removing the borders on blockquotes and pull quotes
- Added post ID to the apple_news_api_post_meta and apple_news_post_args filters
- Fixed handling of relative URLs and anchors in the post body
- Provided a method to reset posts stuck in pending status
- Added a delete confirmation dialog
- Added a separate setting for automatically deleting from Apple News when deleted in WordPress
- Fixed captions so that they’re always aligned properly with the corresponding photo
- Added separate settings for image caption style
- Added an experimental setting to enable HTML format on body elements.
- Added settings for monospaced fonts, which applies to <pre>, <code>, and <samp> elements in body components when HTML formatting is enabled.
- Added additional text formatting options, including tracking (letter-spacing) and line height.
- Split text formatting options for headings to allow full customization per heading level.
- Modified logic for image alignment so that centered and non-aligned images now appear centered instead of right-aligned.
- Added an option for full-bleed images that will cause all centered and non-aligned images to display edge-to-edge.
- Added logic to intelligently split body elements around anchor targets to allow for more opportunities for ad insertion.
- Modified column span logic on left and right orientation to align the right side of the text with the right side of right-aligned images.
- Fixed a bug caused by hardcoded column spans on center orientation.
- Fixed a PHP warning about accessing a static class method using arrow syntax.
- Added unit test coverage for new functionality.
- Refactored several core files to conform to WordPress standards and PHP best practices.
- Added a live preview of the font being selected (macOS only).
- Added a live preview of formatting settings (font preview in macOS only).
- Switched to the native WordPress color picker for greater browser compatibility.
- Added a framework for JSON validation and validation for unicode character sequences that are symptomatic of display issues that have been witnessed, though not reproduced, in Apple News.
- Broke out Action_Exception into its own class file for cleanliness.
- Added direct support links to every error message.
- Added better formatting of multiple error messages.
- Added unit tests for the Apple_News and Admin_Apple_Notice classes.
- Added new unit tests for Push.
- Updated the logic for bundling images for the Apple News API’s new, stricter MIME parsing logic.
- Fixed a bug with the Apple News meta box not saving values when “Automatically publish to Apple News” was set to “Yes”.
- Fixed a bug with posts created via cron skipping post status validation (thanks, agk4444 and smerriman!).
- Fixed a bug with automatically publishing scheduled posts (thanks, smerriman!).
- Apple News meta box is now displayed by default on posts.
- Displaying the Apple News meta box even on draft posts to allow saving settings before publish.
- Updated minimum PHP version to 5.3.6 due to usage of DOMDocument::saveHTML.
- Fixed invalid formatting for plugin author name and plugin URI.
- isPreview=false is no longer sent passively to the API. Only isPreview=true is sent when explicitly specified.
- Fixed an issue where author names with hashtags were breaking the byline format.
- Added image settings, bundled images (if applicable) and JSON to the debug email.
- Checking for blank body nodes early enough to remove and log them as component errors.
- Retrieving and displaying more descriptive error messages from the API response.
- Updated logic for creating a unique ID for anchored components to avoid occasional conflicts due to lack of entropy.
- Fixed issue with lack of container for components when cover isn’t the first component causing text to scroll awkwardly over the image with the parallax effect.
- Added the ability to set the body background color.
- Fixed issue with empty but valid JSON components causing an “Undefined index” error in Apple News validation.
- Fixed issue with an invalid API response or unreachable endpoint causing the post edit screen to break when trying to load the Apple News meta box.
- Released updates to the default settings for the Apple News template
- Added customizable settings for pull quote border color, style and width
- Refactored logic to obtain size of bundled images for wider web host compatibility
- Fixed issue with the Apple News plugin not respecting the site’s timezone offset
- Added support for remote images
- Fixed error on loading the Apple News list view before channel details are entered
- Fixed issue with publishing to sections
- Added composer support (thanks ryanmarkel!)
- Removed unnecessary ob_start() on every page load
- Fixed issue with manual publish button on post edit screen
- Fixed issue with bottom bulk actions menu on Apple News list table
- Added ability to publish to any section
- Added ability to publish preview articles
- Added support for date metadata (https://developer.apple.com/documentation/apple_news/metadata)
- Fixed issue with shortcodes appearing in excerpt metadata
- Added the ability to alter a component’s style property via a filter
- Refactored plugin settings to save as a single option value
- Settings are now only deleted on uninstall and not deactivation
- Removed unit tests that were making remote calls to the API
- Added improved support for known YouTube and Vimeo embed formats
- Addressed issue with component order settings field for users with PHP strict mode enabled.
- Updated the plugin from 0.10 to 1.1 Apple News format.
- Added alert options when unsupported embeds are found in the post content while publishing.
- Added better handling for MIME_PART_INVALID_SIZE errors.
- Added the ability to reorder the title, cover and byline components.
- Updated ads to use new features available in the 1.1 Apple News format.
- Minor settings page updates.
- Resolved some PHP warnings on the dashboard.
- Updated all unit tests and improved test coverage.
- Fixed a performance issue caused by introduction of live post status, added 60 second cache and removed from email debugging.
- Added canonicalURL to metadata (thanks @dashaluna)
- Added automatic excerpt to metadata following normal WordPress logic if a manual one is not present
- Removed unnecessary redirect logic and allowed Apple News notices to display on any screen, updated vague error messages for clarity
- Added plugin information to generator metadata
- Added new field for adjusting byline format
- Added the ability to set the field size and required attributes on the Apple News settings page
- Fix matching of Instagram URL, so component is generated correctly (thanks @dashaluna)
- Added logic to extract the thumbnail/cover from the body content when not explicitly set via the featured image
- Added display of current Apple News publish state to admin screens
- Added set_layout as a separate method for consistency in the Twitter component (thanks @dashaluna)
- Use register_full_width_layout instead of register_layout for byline and cover for consistency (thanks @dashaluna)
- Matching dashes and extra query parameters in YouTube URLs (thanks @smerriman)
- Added multiple checks for publish status throughout built-in publishing scenarios. Still allowing non-published posts to be pushed at the API level to not prevent custom scenarios. Fixed issue with auto publishing not respecting post type settings.
- Improvements to asynchronous publishing to ensure posts cannot get stuck in pending status and to return all error messages that may occur.
- Bug fixes for removing HTML comments, fixing video embed URL regular expressions and fixing auto sync and auto update logic.
- Major production release. Introduces asynchronous publishing for handling large posts, developer tools, new filters and bug fixes.
- Initial release. Includes changes for latest WP Plugin API compatibility and Apple News Publisher API.