canonical-urls
5 months ago
carousel
3 weeks ago
comment-likes
9 months ago
comments
4 days ago
custom-post-types
2 months ago
external-media
9 months ago
google-fonts
2 months ago
gravatar
6 years ago
infinite-scroll
2 months ago
likes
1 week ago
markdown
3 months ago
memberships
2 weeks ago
photon-cdn
1 month ago
plugin-search
3 months ago
post-by-email
9 months ago
related-posts
1 month ago
scan
5 months ago
seo-tools
1 week ago
sharedaddy
1 week ago
shortcodes
1 month ago
shortlinks
2 months ago
simple-payments
9 months ago
site-icon
9 months ago
sitemaps
1 week ago
stats
8 months ago
subscriptions
1 month ago
theme-tools
3 weeks ago
tiled-gallery
2 months ago
verification-tools
3 months ago
videopress
1 month ago
widget-visibility
3 months ago
widgets
2 weeks ago
woocommerce-analytics
4 months ago
wordads
2 months ago
wpcom-tos
8 months ago
account-protection.php
4 months ago
ai.php
4 days ago
blaze.php
9 months ago
blocks.php
9 months ago
canonical-urls.php
6 months ago
carousel.php
9 months ago
comment-likes.php
1 week ago
comments.php
4 days ago
contact-form.php
9 months ago
copy-post.php
3 months ago
custom-content-types.php
4 months ago
google-fonts.php
4 months ago
gravatar-hovercards.php
3 months ago
infinite-scroll.php
9 months ago
json-api.php
9 months ago
latex.php
3 months ago
likes.php
1 week ago
markdown.php
9 months ago
module-extras.php
3 weeks ago
module-headings.php
4 days ago
module-info.php
6 months ago
monitor.php
2 months ago
notes.php
1 month ago
photon-cdn.php
9 months ago
photon.php
9 months ago
plugin-search.php
3 weeks ago
podcast.php
1 month ago
post-by-email.php
4 months ago
post-list.php
9 months ago
protect.php
4 months ago
publicize.php
9 months ago
related-posts.php
3 months ago
search.php
9 months ago
seo-tools.php
2 months ago
sharedaddy.php
6 months ago
shortcodes.php
9 months ago
shortlinks.php
3 months ago
simple-payments.php
9 months ago
sitemaps.php
9 months ago
sso.php
2 months ago
stats.php
1 month ago
subscriptions.php
1 month ago
theme-tools.php
9 months ago
tiled-gallery.php
9 months ago
vaultpress.php
9 months ago
verification-tools.php
4 months ago
videopress.php
9 months ago
waf.php
9 months ago
widget-visibility.php
9 months ago
widgets.php
9 months ago
woocommerce-analytics.php
9 months ago
wordads.php
9 months ago
wpcom-reader.php
6 months ago
wpgroho.js
1 year ago
related-posts.php
82 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 | * @package automattic/jetpack |
| 16 | */ |
| 17 | |
| 18 | if ( ! defined( 'ABSPATH' ) ) { |
| 19 | exit( 0 ); |
| 20 | } |
| 21 | |
| 22 | /** |
| 23 | * Class Jetpack_RelatedPosts_Module |
| 24 | * |
| 25 | * @phan-constructor-used-for-side-effects |
| 26 | */ |
| 27 | class Jetpack_RelatedPosts_Module { |
| 28 | /** |
| 29 | * Class variables |
| 30 | * |
| 31 | * @var Jetpack_RelatedPosts_Module |
| 32 | */ |
| 33 | private static $instance = null; |
| 34 | |
| 35 | /** |
| 36 | * Singleton implementation |
| 37 | * |
| 38 | * @return object |
| 39 | */ |
| 40 | public static function instance() { |
| 41 | if ( ! is_a( self::$instance, 'Jetpack_RelatedPosts_Module' ) ) { |
| 42 | self::$instance = new Jetpack_RelatedPosts_Module(); |
| 43 | } |
| 44 | |
| 45 | return self::$instance; |
| 46 | } |
| 47 | |
| 48 | /** |
| 49 | * Register actions and filters |
| 50 | * |
| 51 | * @uses add_action, add_filter |
| 52 | */ |
| 53 | private function __construct() { |
| 54 | add_action( 'jetpack_module_loaded_related-posts', array( $this, 'action_on_load' ) ); |
| 55 | } |
| 56 | |
| 57 | /** |
| 58 | * This action triggers if the module is in an active state, load related posts and options. |
| 59 | * |
| 60 | * @uses Jetpack_RelatedPosts::init, is_admin, Jetpack::enable_module_configurable, Jetpack_Sync::sync_posts |
| 61 | */ |
| 62 | public function action_on_load() { |
| 63 | require_once __DIR__ . '/related-posts/jetpack-related-posts.php'; |
| 64 | Jetpack_RelatedPosts::init(); |
| 65 | |
| 66 | if ( is_admin() ) { |
| 67 | Jetpack::enable_module_configurable( __FILE__ ); |
| 68 | } |
| 69 | |
| 70 | // Load Customizer controls. |
| 71 | if ( class_exists( WP_Customize_Manager::class ) && class_exists( WP_Customize_Control::class ) ) { |
| 72 | require_once __DIR__ . '/related-posts/class.related-posts-customize.php'; |
| 73 | } |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | // Do it. |
| 78 | Jetpack_RelatedPosts_Module::instance(); |
| 79 | |
| 80 | require_once __DIR__ . '/related-posts/abilities/class-related-posts-abilities.php'; |
| 81 | \Automattic\Jetpack\Plugin\Abilities\Related_Posts_Abilities::init(); |
| 82 |