summaryrefslogtreecommitdiff
path: root/inc/modules/related-posts/class-astra-related-posts-loader.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/modules/related-posts/class-astra-related-posts-loader.php')
-rw-r--r--inc/modules/related-posts/class-astra-related-posts-loader.php194
1 files changed, 194 insertions, 0 deletions
diff --git a/inc/modules/related-posts/class-astra-related-posts-loader.php b/inc/modules/related-posts/class-astra-related-posts-loader.php
new file mode 100644
index 0000000..845fd42
--- /dev/null
+++ b/inc/modules/related-posts/class-astra-related-posts-loader.php
@@ -0,0 +1,194 @@
+<?php
+/**
+ * Related Posts Loader for Astra theme.
+ *
+ * @package Astra
+ * @author Brainstorm Force
+ * @copyright Copyright (c) 2021, Brainstorm Force
+ * @link https://www.brainstormforce.com
+ * @since Astra 3.5.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly.
+}
+
+/**
+ * Customizer Initialization
+ *
+ * @since 3.5.0
+ */
+class Astra_Related_Posts_Loader {
+
+ /**
+ * Constructor
+ *
+ * @since 3.5.0
+ */
+ public function __construct() {
+
+ add_filter( 'astra_theme_defaults', array( $this, 'theme_defaults' ) );
+ add_action( 'customize_register', array( $this, 'related_posts_customize_register' ), 2 );
+ // Load Google fonts.
+ add_action( 'astra_get_fonts', array( $this, 'add_fonts' ), 1 );
+ }
+
+ /**
+ * Enqueue google fonts.
+ *
+ * @return void
+ */
+ public function add_fonts() {
+ if ( astra_target_rules_for_related_posts() ) {
+ // Related Posts Section title.
+ $section_title_font_family = astra_get_option( 'related-posts-section-title-font-family' );
+ $section_title_font_weight = astra_get_option( 'related-posts-section-title-font-weight' );
+ Astra_Fonts::add_font( $section_title_font_family, $section_title_font_weight );
+
+ // Related Posts - Posts title.
+ $post_title_font_family = astra_get_option( 'related-posts-title-font-family' );
+ $post_title_font_weight = astra_get_option( 'related-posts-title-font-weight' );
+ Astra_Fonts::add_font( $post_title_font_family, $post_title_font_weight );
+
+ // Related Posts - Meta Font.
+ $meta_font_family = astra_get_option( 'related-posts-meta-font-family' );
+ $meta_font_weight = astra_get_option( 'related-posts-meta-font-weight' );
+ Astra_Fonts::add_font( $meta_font_family, $meta_font_weight );
+
+ // Related Posts - Content Font.
+ $content_font_family = astra_get_option( 'related-posts-content-font-family' );
+ $content_font_weight = astra_get_option( 'related-posts-content-font-weight' );
+ Astra_Fonts::add_font( $content_font_family, $content_font_weight );
+ }
+ }
+
+ /**
+ * Set Options Default Values
+ *
+ * @param array $defaults Astra options default value array.
+ * @return array
+ */
+ public function theme_defaults( $defaults ) {
+
+ // Related Posts.
+ $defaults['enable-related-posts'] = false;
+ $defaults['related-posts-title'] = __( 'Related Posts', 'astra' );
+ $defaults['releted-posts-title-alignment'] = 'left';
+ $defaults['related-posts-total-count'] = 2;
+ $defaults['enable-related-posts-excerpt'] = false;
+ $defaults['related-posts-excerpt-count'] = 25;
+ $defaults['related-posts-based-on'] = 'categories';
+ $defaults['related-posts-order-by'] = 'date';
+ $defaults['related-posts-order'] = 'asc';
+ $defaults['related-posts-grid-responsive'] = array(
+ 'desktop' => '2-equal',
+ 'tablet' => '2-equal',
+ 'mobile' => 'full',
+ );
+ $defaults['related-posts-structure'] = array(
+ 'featured-image',
+ 'title-meta',
+ );
+ $defaults['related-posts-meta-structure'] = array(
+ 'comments',
+ 'category',
+ 'author',
+ );
+ // Related Posts - Color styles.
+ $defaults['related-posts-text-color'] = '';
+ $defaults['related-posts-link-color'] = '';
+ $defaults['related-posts-title-color'] = '';
+ $defaults['related-posts-background-color'] = '';
+ $defaults['related-posts-meta-color'] = '';
+ $defaults['related-posts-link-hover-color'] = '';
+ $defaults['related-posts-meta-link-hover-color'] = '';
+ // Related Posts - Title typo.
+ $defaults['related-posts-section-title-font-family'] = 'inherit';
+ $defaults['related-posts-section-title-font-weight'] = 'inherit';
+ $defaults['related-posts-section-title-text-transform'] = '';
+ $defaults['related-posts-section-title-line-height'] = '';
+ $defaults['related-posts-section-title-font-size'] = array(
+ 'desktop' => '30',
+ 'tablet' => '',
+ 'mobile' => '',
+ 'desktop-unit' => 'px',
+ 'tablet-unit' => 'px',
+ 'mobile-unit' => 'px',
+ );
+
+ // Related Posts - Title typo.
+ $defaults['related-posts-title-font-family'] = 'inherit';
+ $defaults['related-posts-title-font-weight'] = 'inherit';
+ $defaults['related-posts-title-text-transform'] = '';
+ $defaults['related-posts-title-line-height'] = '1';
+ $defaults['related-posts-title-font-size'] = array(
+ 'desktop' => '20',
+ 'tablet' => '',
+ 'mobile' => '',
+ 'desktop-unit' => 'px',
+ 'tablet-unit' => 'px',
+ 'mobile-unit' => 'px',
+ );
+
+ // Related Posts - Meta typo.
+ $defaults['related-posts-meta-font-family'] = 'inherit';
+ $defaults['related-posts-meta-font-weight'] = 'inherit';
+ $defaults['related-posts-meta-text-transform'] = '';
+ $defaults['related-posts-meta-line-height'] = '';
+ $defaults['related-posts-meta-font-size'] = array(
+ 'desktop' => '14',
+ 'tablet' => '',
+ 'mobile' => '',
+ 'desktop-unit' => 'px',
+ 'tablet-unit' => 'px',
+ 'mobile-unit' => 'px',
+ );
+
+ // Related Posts - Content typo.
+ $defaults['related-posts-content-font-family'] = 'inherit';
+ $defaults['related-posts-content-font-weight'] = 'inherit';
+ $defaults['related-posts-content-text-transform'] = '';
+ $defaults['related-posts-content-line-height'] = '';
+ $defaults['related-posts-content-font-size'] = array(
+ 'desktop' => '',
+ 'tablet' => '',
+ 'mobile' => '',
+ 'desktop-unit' => 'px',
+ 'tablet-unit' => 'px',
+ 'mobile-unit' => 'px',
+ );
+
+ return $defaults;
+ }
+
+ /**
+ * Add postMessage support for site title and description for the Theme Customizer.
+ *
+ * @param WP_Customize_Manager $wp_customize Theme Customizer object.
+ *
+ * @since 3.5.0
+ */
+ public function related_posts_customize_register( $wp_customize ) {
+
+ /**
+ * Register Config control in Related Posts.
+ */
+ // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
+ require_once ASTRA_RELATED_POSTS_DIR . 'customizer/class-astra-related-posts-configs.php';
+ // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
+ }
+
+ /**
+ * Render the Related Posts title for the selective refresh partial.
+ *
+ * @since 3.5.0
+ */
+ public function render_related_posts_title() {
+ return astra_get_option( 'related-posts-title' );
+ }
+}
+
+/**
+* Kicking this off by creating NEW instace.
+*/
+new Astra_Related_Posts_Loader();