carousel
1 year ago
comment-likes
1 year ago
comments
1 year ago
custom-post-types
1 year ago
external-media
1 year ago
google-fonts
1 year ago
gravatar
6 years ago
infinite-scroll
1 year ago
likes
1 year ago
markdown
1 year ago
memberships
1 year ago
photon-cdn
1 year ago
plugin-search
1 year ago
post-by-email
1 year ago
related-posts
1 year ago
scan
1 year ago
seo-tools
1 year ago
sharedaddy
1 year ago
shortcodes
1 year ago
simple-payments
1 year ago
site-icon
2 years ago
sitemaps
1 year ago
stats
1 year ago
subscriptions
1 year ago
theme-tools
1 year ago
tiled-gallery
1 year ago
verification-tools
4 years ago
videopress
1 year ago
widget-visibility
1 year ago
widgets
1 year ago
woocommerce-analytics
1 year ago
wordads
1 year ago
wpcom-tos
5 years ago
account-protection.php
1 year ago
blaze.php
1 year ago
blocks.php
1 year ago
carousel.php
1 year ago
comment-likes.php
1 year ago
comments.php
1 year ago
contact-form.php
1 year ago
copy-post.php
1 year ago
custom-content-types.php
1 year ago
google-fonts.php
1 year ago
gravatar-hovercards.php
1 year ago
infinite-scroll.php
1 year ago
json-api.php
1 year ago
latex.php
1 year ago
likes.php
1 year ago
markdown.php
1 year ago
module-extras.php
1 year ago
module-headings.php
1 year ago
module-info.php
1 year ago
monitor.php
1 year ago
notes.php
1 year ago
photon-cdn.php
1 year ago
photon.php
1 year ago
plugin-search.php
1 year ago
post-by-email.php
1 year ago
post-list.php
1 year ago
protect.php
1 year ago
publicize.php
1 year ago
related-posts.php
1 year ago
search.php
1 year ago
seo-tools.php
1 year ago
sharedaddy.php
1 year ago
shortcodes.php
1 year ago
shortlinks.php
1 year ago
sitemaps.php
1 year ago
sso.php
1 year ago
stats.php
1 year ago
subscriptions.php
1 year ago
theme-tools.php
1 year ago
tiled-gallery.php
1 year ago
vaultpress.php
1 year ago
verification-tools.php
1 year ago
videopress.php
1 year ago
waf.php
1 year ago
widget-visibility.php
1 year ago
widgets.php
1 year ago
woocommerce-analytics.php
1 year ago
wordads.php
1 year ago
wpgroho.js
1 year ago
related-posts.php
67 lines
| 1 | <?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName |
| 2 | /** |
| 3 | * Module Name: Related posts |
| 4 | * Module Description: Automatically display related articles to keep visitors reading longer. |
| 5 | * First Introduced: 2.9 |
| 6 | * Sort Order: 29 |
| 7 | * Recommendation Order: 9 |
| 8 | * Requires Connection: Yes |
| 9 | * Auto Activate: No |
| 10 | * Module Tags: Recommended |
| 11 | * Feature: Engagement |
| 12 | * // phpcs:ignore WordPress.WP.CapitalPDangit.MisspelledInComment |
| 13 | * Additional Search Queries: related, jetpack related posts, related posts for wordpress, related posts, popular posts, popular, related content, related post, contextual, context, contextual related posts, related articles, similar posts, easy related posts, related page, simple related posts, free related posts, related thumbnails, similar, engagement, yet another related posts plugin, creator |
| 14 | */ |
| 15 | class Jetpack_RelatedPosts_Module { |
| 16 | /** |
| 17 | * Class variables |
| 18 | * |
| 19 | * @var Jetpack_RelatedPosts_Module |
| 20 | */ |
| 21 | private static $instance = null; |
| 22 | |
| 23 | /** |
| 24 | * Singleton implementation |
| 25 | * |
| 26 | * @return object |
| 27 | */ |
| 28 | public static function instance() { |
| 29 | if ( ! is_a( self::$instance, 'Jetpack_RelatedPosts_Module' ) ) { |
| 30 | self::$instance = new Jetpack_RelatedPosts_Module(); |
| 31 | } |
| 32 | |
| 33 | return self::$instance; |
| 34 | } |
| 35 | |
| 36 | /** |
| 37 | * Register actions and filters |
| 38 | * |
| 39 | * @uses add_action, add_filter |
| 40 | */ |
| 41 | private function __construct() { |
| 42 | add_action( 'jetpack_module_loaded_related-posts', array( $this, 'action_on_load' ) ); |
| 43 | } |
| 44 | |
| 45 | /** |
| 46 | * This action triggers if the module is in an active state, load related posts and options. |
| 47 | * |
| 48 | * @uses Jetpack_RelatedPosts::init, is_admin, Jetpack::enable_module_configurable, Jetpack_Sync::sync_posts |
| 49 | */ |
| 50 | public function action_on_load() { |
| 51 | require_once __DIR__ . '/related-posts/jetpack-related-posts.php'; |
| 52 | Jetpack_RelatedPosts::init(); |
| 53 | |
| 54 | if ( is_admin() ) { |
| 55 | Jetpack::enable_module_configurable( __FILE__ ); |
| 56 | } |
| 57 | |
| 58 | // Load Customizer controls. |
| 59 | if ( class_exists( WP_Customize_Manager::class ) && class_exists( WP_Customize_Control::class ) ) { |
| 60 | require_once __DIR__ . '/related-posts/class.related-posts-customize.php'; |
| 61 | } |
| 62 | } |
| 63 | } |
| 64 | |
| 65 | // Do it. |
| 66 | Jetpack_RelatedPosts_Module::instance(); |
| 67 |