We'll create fresh WordPress site with Sophi installed. You have 20 minutes to test the plugin after that site we'll be deleted.
Sophi.io is a suite of artificial intelligence (AI) tools developed by The Globe and Mail to help content publishers make important strategic and tactical decisions. The tools range from automated content curation engines to predictive analytics and paywall solutions.
Sophi-driven pages outperform human curated pages by a significant margin and free up publisher resources so that they can focus on finding the next story that matters. Invisible, automated curation of your home and section pages to streamline your team’s workflow. Continuously optimize the performance characteristics of the site based on demand and your brand, so the content is always the right fit.
Note that a Sophi.io account and related credentials are required in order to authorize and authenticate access within the plugin settings.
There are two potential ways to integrate Sophi Site Automation results with your WordPress site. The default approach includes a Sophi Site Automation block that integrates with get_posts
by injecting Posts IDs via the posts_pre_query
filter that gets fetched later to return the actual Posts. In the same fashion, you can integrate Sophi results with your WP_Query
object by setting the sophi_curated_page
and sophi_curated_widget
query parameters.
More details on each of these two options are described below. If you are not certain on the best integration approach, considering the following:
Reasons to use the Site Automation block:
– No additional development effort needed for initial Sophi integration
– Immediate integration with Sophi Site Automation API and page/widget settings
– Basic block display settings allow for basic configurations (show/hide post excerpt, author name, post date, featured image)
Reasons to use the Query integration:
– Can implement more custom caching and content fallback options
– Can implement support into non-block editor setups
– Likely more flexible for headless setups
– Block editor is not in-use within your WordPress environment
– You need an integration with Category/Taxonomy Pages and cannot integrate using a sidebar widget
You can utilize the Site Automation block by configuring the Site Automation page and widget names and adjusting block content and post meta settings to display Site Automation content on your site.
The Site Automation block comes with a barebone HTML output and styling. It’s made to be filtered using sophi_site_automation_block_output
.
add_filter(
'sophi_site_automation_block_output',
function( $output, $curated_posts, $attributes, $content, $block ) {
// ...
return $new_output;
},
10,
5
);
The Site Automation block will automatically add a data-sophi-feature=<widget_name>
attribute for the rendered HTML content so Sophi can understand what content section is rendered on your site.
The Site Automation block uses query integration under the hood. You can query for Sophi curated articles by passing sophi_curated_page
and sophi_curated_widget
to your WP_Query queries.
$the_query = new WP_Query( [
'sophi_curated_page' => 'page-name',
'sophi_curated_widget' => 'widget-name',
] );
Note that you need to add data-sophi-feature=<widget_name>
to the wrapper div of your post for Sophi to capture your widget better.
<div class="posts-wrapper" data-sophi-feature="trending">
<!-- Post lists -->
</div>
While the above query integration works just fine, it has been observed on WordPress VIP infrastructure that WP_Query
may return latest posts instead of the posts curated by Sophi due to the Advanced Post Cache plugin used by the VIP platform. A workaround for this is to use get_posts()
instead and as good practice to add a comment explaining the usage of it so that developers new to it don’t swap it for WP_Query
. Also remember to whitelist get_posts
by adding the following inline comment so that PHPCS doesn’t throw a warning:
phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.get_posts_get_posts<h3>Developer Documentation</h3>
Sophi for WordPress has an in-depth documentation site that details the available actions and filters found within the plugin. Visit the developer docs ☞
If you are having difficulties with your Sophi integration, then we recommend utilizing the Debug Bar for Sophi plugin to help triage your Sophi Authentication, Sophi API integration, and CMS publish/update events.