File manager - Edit - /home/premiey/www/wp-includes/images/media/related-posts.tar
Back
css/dynamic-css.php 0000666 00000022731 15166677303 0010306 0 ustar 00 <?php /** * Related Posts - Dynamic CSS * * @package astra * @since 3.4.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } add_filter( 'astra_dynamic_theme_css', 'astra_related_posts_css', 11 ); /** * Related Posts - Dynamic CSS * * @param string $dynamic_css Astra Dynamic CSS. * @return String Generated dynamic CSS for Related Posts. * * @since 3.4.0 */ function astra_related_posts_css( $dynamic_css ) { if ( astra_target_rules_for_related_posts() ) { $link_color = astra_get_option( 'link-color' ); $related_posts_title_alignment = astra_get_option( 'releted-posts-title-alignment' ); // Added RTL language support for title alignment. if ( is_rtl() && 'center' !== $related_posts_title_alignment ) { $related_posts_title_alignment = ( 'left' === $related_posts_title_alignment ) ? 'right' : 'left'; } // Related Posts Grid layout params. $related_posts_grid = astra_get_option( 'related-posts-grid-responsive' ); $desktop_grid = ( isset( $related_posts_grid['desktop'] ) ) ? $related_posts_grid['desktop'] : '2-equal'; $tablet_grid = ( isset( $related_posts_grid['tablet'] ) ) ? $related_posts_grid['tablet'] : '2-equal'; $mobile_grid = ( isset( $related_posts_grid['mobile'] ) ) ? $related_posts_grid['mobile'] : 'full'; // Related Posts -> Post Title typography dynamic stylings. $related_post_title_font_size = astra_get_option( 'related-posts-title-font-size' ); // Related Posts -> Post Meta typography dynamic stylings. $related_post_meta_font_size = astra_get_option( 'related-posts-meta-font-size' ); // Related Posts -> Content typography dynamic stylings. $related_post_content_font_size = astra_get_option( 'related-posts-content-font-size' ); // Related Posts -> Section Title typography dynamic stylings. $related_posts_section_title_font_size = astra_get_option( 'related-posts-section-title-font-size' ); // Setting up container BG color by default to Related Posts's section BG color. $content_bg_obj = astra_get_option( 'content-bg-obj-responsive' ); $container_bg_color = '#ffffff'; if ( isset( $content_bg_obj['desktop']['background-color'] ) && '' !== $content_bg_obj['desktop']['background-color'] ) { $container_bg_color = $content_bg_obj['desktop']['background-color']; } // Related Posts -> Color dynamic stylings. $related_posts_title_color = astra_get_option( 'related-posts-title-color' ); /** @psalm-suppress PossiblyInvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $related_posts_bg_color = astra_get_option( 'related-posts-background-color', $container_bg_color ); $related_post_text_color = astra_get_option( 'related-posts-text-color' ); $related_posts_meta_color = astra_get_option( 'related-posts-meta-color' ); $related_posts_link_color = astra_get_option( 'related-posts-link-color' ); $related_posts_link_hover_color = astra_get_option( 'related-posts-link-hover-color' ); $related_posts_meta_link_hover_color = astra_get_option( 'related-posts-meta-link-hover-color' ); $css_desktop_output = array( '.ast-single-related-posts-container .ast-related-posts-wrapper' => array( 'grid-template-columns' => Astra_Builder_Helper::$grid_size_mapping[ $desktop_grid ], ), '.ast-related-posts-inner-section .ast-date-meta .posted-on, .ast-related-posts-inner-section .ast-date-meta .posted-on *' => array( 'background' => esc_attr( $link_color ), 'color' => astra_get_foreground_color( $link_color ), ), '.ast-related-posts-inner-section .ast-date-meta .posted-on .date-month, .ast-related-posts-inner-section .ast-date-meta .posted-on .date-year' => array( 'color' => astra_get_foreground_color( $link_color ), ), '.ast-single-related-posts-container' => array( 'background-color' => esc_attr( $related_posts_bg_color ), ), /** * Related Posts - Section Title */ '.ast-related-posts-title' => astra_get_font_array_css( astra_get_option( 'related-posts-section-title-font-family' ), astra_get_option( 'related-posts-section-title-font-weight' ), $related_posts_section_title_font_size, 'related-posts-section-title-font-extras', $related_posts_title_color ), '.ast-related-posts-title-section .ast-related-posts-title' => array( 'text-align' => esc_attr( $related_posts_title_alignment ), ), /** * Related Posts - Post Title */ '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' => astra_get_font_array_css( astra_get_option( 'related-posts-title-font-family' ), astra_get_option( 'related-posts-title-font-weight' ), $related_post_title_font_size, 'related-posts-title-font-extras', $related_post_text_color ), /** * Related Posts - Meta */ '.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *' => astra_get_font_array_css( astra_get_option( 'related-posts-meta-font-family' ), astra_get_option( 'related-posts-meta-font-weight' ), $related_post_meta_font_size, 'related-posts-meta-font-extras', $related_posts_meta_color ), '.ast-related-post-content .entry-meta a:hover, .ast-related-post-content .entry-meta span a span:hover' => array( 'color' => esc_attr( $related_posts_meta_link_hover_color ), ), /** * Related Posts - CTA */ '.ast-related-post-cta a' => array( 'color' => esc_attr( $related_posts_link_color ), ), '.ast-related-post-cta a:hover' => array( 'color' => esc_attr( $related_posts_link_hover_color ), ), /** * Related Posts - Content */ '.ast-related-post-excerpt' => astra_get_font_array_css( astra_get_option( 'related-posts-content-font-family' ), astra_get_option( 'related-posts-content-font-weight' ), $related_post_content_font_size, 'related-posts-content-font-extras', $related_post_text_color ), ); if ( astra_has_global_color_format_support() ) { /** @psalm-suppress PossiblyInvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $related_posts_bg_color = astra_get_option( 'related-posts-background-color', $content_bg_obj ); if ( is_array( $related_posts_bg_color ) ) { $css_desktop_output['.ast-single-related-posts-container'] = astra_get_responsive_background_obj( $related_posts_bg_color, 'desktop' ); } else { $css_desktop_output['.ast-single-related-posts-container'] = array( 'background-color' => esc_attr( $related_posts_bg_color ), ); } } $dynamic_css .= astra_parse_css( $css_desktop_output ); $css_max_tablet_output = array( '.ast-single-related-posts-container .ast-related-posts-wrapper .ast-related-post' => array( 'width' => '100%', ), '.ast-single-related-posts-container .ast-related-posts-wrapper' => array( 'grid-template-columns' => Astra_Builder_Helper::$grid_size_mapping[ $tablet_grid ], ), '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' => array( 'font-size' => astra_responsive_font( $related_post_title_font_size, 'tablet' ), ), '.ast-related-post-content .entry-meta *' => array( 'font-size' => astra_responsive_font( $related_post_meta_font_size, 'tablet' ), ), '.ast-related-post-excerpt' => array( 'font-size' => astra_responsive_font( $related_post_content_font_size, 'tablet' ), ), '.ast-related-posts-title' => array( 'font-size' => astra_responsive_font( $related_posts_section_title_font_size, 'tablet' ), ), ); if ( astra_has_global_color_format_support() ) { if ( is_array( $related_posts_bg_color ) ) { $css_max_tablet_output['.ast-single-related-posts-container'] = astra_get_responsive_background_obj( $related_posts_bg_color, 'desktop' ); } else { $css_max_tablet_output['.ast-single-related-posts-container'] = array( 'background-color' => esc_attr( $related_posts_bg_color ), ); } } $dynamic_css .= astra_parse_css( $css_max_tablet_output, '', astra_get_tablet_breakpoint() ); $css_max_mobile_output = array( '.ast-single-related-posts-container .ast-related-posts-wrapper' => array( 'grid-template-columns' => Astra_Builder_Helper::$grid_size_mapping[ $mobile_grid ], ), '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' => array( 'font-size' => astra_responsive_font( $related_post_title_font_size, 'mobile' ), ), '.ast-related-post-content .entry-meta *' => array( 'font-size' => astra_responsive_font( $related_post_meta_font_size, 'mobile' ), ), '.ast-related-post-excerpt' => array( 'font-size' => astra_responsive_font( $related_post_content_font_size, 'mobile' ), ), '.ast-related-posts-title' => array( 'font-size' => astra_responsive_font( $related_posts_section_title_font_size, 'mobile' ), ), ); if ( astra_has_global_color_format_support() ) { if ( is_array( $related_posts_bg_color ) ) { $css_max_mobile_output['.ast-single-related-posts-container'] = astra_get_responsive_background_obj( $related_posts_bg_color, 'desktop' ); } else { $css_max_mobile_output['.ast-single-related-posts-container'] = array( 'background-color' => esc_attr( $related_posts_bg_color ), ); } } $dynamic_css .= astra_parse_css( $css_max_mobile_output, '', astra_get_mobile_breakpoint() ); return $dynamic_css; } return $dynamic_css; } css/static-css.php 0000666 00000007117 15166677303 0010152 0 ustar 00 <?php /** * Related Posts - Static CSS * * @package astra * * @since 3.5.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } add_filter( 'astra_dynamic_theme_css', 'astra_related_posts_static_css', 11 ); /** * Related Posts - Static CSS * * @param string $dynamic_css Astra Dynamic CSS. * @return String Generated dynamic CSS for Related Posts. * * @since 3.5.0 */ function astra_related_posts_static_css( $dynamic_css ) { if ( astra_target_rules_for_related_posts() ) { $dynamic_css .= ' .ast-related-post-title, .entry-meta * { word-break: break-word; } .ast-page-builder-template .ast-related-post .entry-header, .ast-related-post-content .entry-header, .ast-related-post-content .entry-meta { margin: 1em auto 1em auto; padding: 0; } .ast-related-posts-wrapper { display: grid; grid-column-gap: 25px; grid-row-gap: 25px; } .ast-related-posts-wrapper .ast-related-post, .ast-related-post-featured-section { padding: 0; margin: 0; width: 100%; position: relative; } .ast-related-posts-inner-section { height: 100%; } .post-has-thumb + .entry-header, .post-has-thumb + .entry-content { margin-top: 1em; } .ast-related-post-content .entry-meta { margin-top: 0.5em; } .ast-related-posts-inner-section .post-thumb-img-content { margin: 0; position: relative; } '; if ( true === astra_check_is_structural_setup() ) { /** @psalm-suppress InvalidOperand */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $astra_mobile_breakpoint = astra_get_mobile_breakpoint(); /** @psalm-suppress InvalidOperand */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort $dynamic_css .= ' .ast-single-related-posts-container { border-top: 1px solid var(--ast-border-color); margin: 2em 0 0; } .ast-separate-container .ast-single-related-posts-container { border-top: 0; } .ast-single-related-posts-container { padding-top: 2em; } .ast-related-posts-title-section, .single .site-main .ast-author-meta .about-author-title-wrapper { padding-bottom: 2em; } .ast-page-builder-template .ast-single-related-posts-container { margin: 0; padding-left: 20px; padding-right: 20px; } .ast-separate-container .ast-single-related-posts-container { padding: 3em; } @media (max-width: ' . $astra_mobile_breakpoint . 'px) { .ast-separate-container .ast-single-related-posts-container { padding: 1.5em 1em; } .ast-related-posts-title-section, .single .site-main .ast-author-meta .about-author-title-wrapper { padding-bottom: 1.5em; } } '; } else { $dynamic_css .= ' .ast-separate-container .ast-related-posts-title { margin: 0 0 20px 0; } .ast-related-posts-title-section { border-top: 1px solid #eeeeee; } .ast-related-posts-title { margin: 20px 0; } .ast-page-builder-template .ast-related-posts-title-section, .ast-page-builder-template .ast-single-related-posts-container { padding: 0 20px; } .ast-separate-container .ast-single-related-posts-container { padding: 5.34em 6.67em; } .ast-single-related-posts-container { margin: 2em 0; } .ast-separate-container .ast-related-posts-title-section, .ast-page-builder-template .ast-single-related-posts-container { border-top: 0; margin-top: 0; } @media (max-width: 1200px) { .ast-separate-container .ast-single-related-posts-container { padding: 3.34em 2.4em; } } '; } return $dynamic_css; } return $dynamic_css; } customizer/class-astra-related-posts-configs.php 0000666 00000101355 15166677303 0016137 0 ustar 00 <?php /** * Related Posts Options for Astra Theme. * * @package Astra * @author Astra * @copyright Copyright (c) 2021, Astra * @link https://wpastra.com/ * @since Astra 3.5.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } // Bail if Customizer config base class does not exist. if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) { return; } /** * Register Related Posts Configurations. */ class Astra_Related_Posts_Configs extends Astra_Customizer_Config_Base { /** * Register Related Posts Configurations. * * @param Array $configurations Astra Customizer Configurations. * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager. * @since 3.5.0 * @return Array Astra Customizer Configurations with updated configurations. */ public function register_configuration( $configurations, $wp_customize ) { $_configs = array( /** * Option: Related Posts Query */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-section-heading]', 'section' => 'section-blog-single', 'type' => 'control', 'control' => 'ast-heading', 'title' => __( 'Related Posts', 'astra' ), 'priority' => 10, 'divider' => array( 'ast_class' => 'ast-section-spacing' ), ), /** * Option: Related Posts setting. */ array( 'name' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'default' => astra_get_option( 'enable-related-posts' ), 'type' => 'control', 'control' => 'ast-toggle-control', 'title' => __( 'Enable Related Posts', 'astra' ), 'section' => 'section-blog-single', 'priority' => 10, 'divider' => array( 'ast_class' => 'ast-section-spacing' ), ), /** * Option: Related Posts Title */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-title]', 'default' => astra_get_option( 'related-posts-title' ), 'type' => 'control', 'section' => 'section-blog-single', 'priority' => 11, 'title' => __( 'Title', 'astra' ), 'control' => 'text', 'transport' => 'postMessage', 'partial' => array( 'selector' => '.ast-related-posts-title-section .ast-related-posts-title', 'container_inclusive' => false, 'render_callback' => array( 'Astra_Related_Posts_Loader', 'render_related_posts_title' ), ), 'context' => array( Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), ), /** * Option: Related Posts Title Alignment */ array( 'name' => ASTRA_THEME_SETTINGS . '[releted-posts-title-alignment]', 'default' => astra_get_option( 'releted-posts-title-alignment' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', 'title' => __( 'Title Alignment', 'astra' ), 'type' => 'control', 'control' => 'ast-selector', 'priority' => 11, 'responsive' => false, 'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ), 'context' => array( Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-title]', 'operator' => '!=', 'value' => '', ), ), 'choices' => array( 'left' => 'align-left', 'center' => 'align-center', 'right' => 'align-right', ), ), /** * Option: Related Posts Structure */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-structure]', 'type' => 'control', 'control' => 'ast-sortable', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_multi_choices' ), 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-structure' ), 'priority' => 12, 'context' => array( Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'title' => __( 'Posts Structure', 'astra' ), 'choices' => array( 'featured-image' => __( 'Featured Image', 'astra' ), 'title-meta' => __( 'Title & Post Meta', 'astra' ), ), 'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ), ), array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-meta-structure]', 'type' => 'control', 'control' => 'ast-sortable', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_multi_choices' ), 'default' => astra_get_option( 'related-posts-meta-structure' ), 'context' => array( Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-structure]', 'operator' => 'contains', 'value' => 'title-meta', ), ), 'section' => 'section-blog-single', 'priority' => 12, 'title' => __( 'Meta', 'astra' ), 'choices' => array( 'comments' => __( 'Comments', 'astra' ), 'category' => __( 'Category', 'astra' ), 'author' => __( 'Author', 'astra' ), 'date' => __( 'Publish Date', 'astra' ), 'tag' => __( 'Tag', 'astra' ), ), 'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ), ), /** * Option: Enable excerpt for Related Posts. */ array( 'name' => ASTRA_THEME_SETTINGS . '[enable-related-posts-excerpt]', 'default' => astra_get_option( 'enable-related-posts-excerpt' ), 'type' => 'control', 'control' => 'ast-toggle-control', 'title' => __( 'Enable Post Excerpt', 'astra' ), 'section' => 'section-blog-single', 'priority' => 12, 'context' => array( Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ), ), /** * Option: Excerpt word count for Related Posts */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-excerpt-count]', 'default' => astra_get_option( 'related-posts-excerpt-count' ), 'type' => 'control', 'control' => 'ast-slider', 'context' => array( Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts-excerpt]', 'operator' => '==', 'value' => true, ), ), 'section' => 'section-blog-single', 'title' => __( 'Excerpt Word Count', 'astra' ), 'priority' => 12, 'input_attrs' => array( 'min' => 0, 'step' => 1, 'max' => 60, ), ), /** * Option: No. of Related Posts */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-total-count]', 'default' => astra_get_option( 'related-posts-total-count' ), 'type' => 'control', 'control' => 'ast-slider', 'context' => array( Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'section' => 'section-blog-single', 'title' => __( 'Total Number of Related Posts', 'astra' ), 'priority' => 11, 'input_attrs' => array( 'min' => 1, 'step' => 1, 'max' => 20, ), 'divider' => array( 'ast_class' => 'ast-top-dotted-divider ast-bottom-dotted-divider' ), ), /** * Option: Related Posts Columns */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-grid-responsive]', 'type' => 'control', 'control' => 'ast-selector', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-grid-responsive' ), 'priority' => 11, 'context' => array( Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'title' => __( 'Grid Column Layout', 'astra' ), 'choices' => array( 'full' => __( '1', 'astra' ), '2-equal' => __( '2', 'astra' ), '3-equal' => __( '3', 'astra' ), '4-equal' => __( '4', 'astra' ), ), 'responsive' => true, 'renderAs' => 'text', 'divider' => array( 'ast_class' => 'ast-bottom-dotted-divider' ), ), /** * Option: Related Posts Query group setting */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-query-group]', 'default' => astra_get_option( 'related-posts-query-group' ), 'type' => 'control', 'transport' => 'postMessage', 'control' => 'ast-settings-group', 'context' => array( Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'title' => __( 'Posts Query', 'astra' ), 'section' => 'section-blog-single', 'priority' => 11, ), /** * Option: Related Posts based on. */ array( 'name' => 'related-posts-based-on', 'default' => astra_get_option( 'related-posts-based-on' ), 'type' => 'sub-control', 'transport' => 'postMessage', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-query-group]', 'section' => 'section-blog-single', 'priority' => 1, 'control' => 'ast-selector', 'title' => __( 'Related Posts by', 'astra' ), 'choices' => array( 'categories' => __( 'Categories', 'astra' ), 'tags' => __( 'Tags', 'astra' ), ), 'responsive' => false, 'renderAs' => 'text', ), /** * Option: Display Post Structure */ array( 'name' => 'related-posts-order-by', 'default' => astra_get_option( 'related-posts-order-by' ), 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-query-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'priority' => 2, 'transport' => 'postMessage', 'title' => __( 'Order by', 'astra' ), 'control' => 'ast-select', 'choices' => array( 'date' => __( 'Date', 'astra' ), 'title' => __( 'Title', 'astra' ), 'menu_order' => __( 'Post Order', 'astra' ), 'rand' => __( 'Random', 'astra' ), 'comment_count' => __( 'Comment Counts', 'astra' ), ), ), /** * Option: Display Post Structure */ array( 'name' => 'related-posts-order', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-query-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'transport' => 'postMessage', 'title' => __( 'Order', 'astra' ), 'default' => astra_get_option( 'related-posts-order' ), 'control' => 'ast-selector', 'priority' => 3, 'choices' => array( 'asc' => __( 'Ascending', 'astra' ), 'desc' => __( 'Descending', 'astra' ), ), 'responsive' => false, 'renderAs' => 'text', ), /** * Option: Related Posts colors setting group */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-colors-group]', 'default' => astra_get_option( 'related-posts-colors-group' ), 'type' => 'control', 'transport' => 'postMessage', 'control' => 'ast-settings-group', 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-structure]', 'operator' => 'contains', 'value' => 'title-meta', ), ), 'title' => __( 'Content Colors', 'astra' ), 'section' => 'section-blog-single', 'priority' => 15, ), /** * Option: Related Posts title typography setting group */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-section-title-typography-group]', 'type' => 'control', 'priority' => 16, 'control' => 'ast-settings-group', 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-title]', 'operator' => '!=', 'value' => '', ), ), 'title' => __( 'Section Title Font', 'astra' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', ), /** * Option: Related Posts title typography setting group */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-title-typography-group]', 'type' => 'control', 'priority' => 17, 'control' => 'ast-settings-group', 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-structure]', 'operator' => 'contains', 'value' => 'title-meta', ), ), 'title' => __( 'Post Title Font', 'astra' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', ), /** * Option: Related Posts meta typography setting group */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-meta-typography-group]', 'type' => 'control', 'priority' => 18, 'control' => 'ast-settings-group', 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-structure]', 'operator' => 'contains', 'value' => 'title-meta', ), ), 'title' => __( 'Meta Font', 'astra' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', ), /** * Option: Related Posts content typography setting group */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-content-typography-group]', 'type' => 'control', 'priority' => 21, 'control' => 'ast-settings-group', 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts-excerpt]', 'operator' => '==', 'value' => true, ), ), 'title' => __( 'Content Font', 'astra' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', ), /** * Option: Related post block text color */ array( 'name' => 'related-posts-text-color', 'tab' => __( 'Normal', 'astra' ), 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-colors-group]', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-text-color' ), 'transport' => 'postMessage', 'control' => 'ast-color', 'title' => __( 'Text Color', 'astra' ), ), /** * Option: Related post block CTA link color */ array( 'name' => 'related-posts-link-color', 'tab' => __( 'Normal', 'astra' ), 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-colors-group]', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-link-color' ), 'transport' => 'postMessage', 'control' => 'ast-color', 'title' => __( 'Link Color', 'astra' ), ), /** * Option: Related Posts Query */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-design-section-heading]', 'section' => 'section-blog-single', 'type' => 'control', 'control' => 'ast-heading', 'title' => ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) ? __( 'Related Posts', 'astra' ) : __( 'Related Posts Design', 'astra' ), 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'priority' => 14, ), /** * Option: Related post block BG color */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-title-color]', 'default' => astra_get_option( 'related-posts-title-color' ), 'type' => 'control', 'control' => 'ast-color', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', 'priority' => 14, 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, 'relation' => 'AND', array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), array( 'setting' => ASTRA_THEME_SETTINGS . '[related-posts-title]', 'operator' => '!=', 'value' => '', ), ), 'title' => __( 'Section Title', 'astra' ), ), /** * Option: Related post block BG color */ array( 'name' => ASTRA_THEME_SETTINGS . '[related-posts-background-color]', 'default' => astra_get_option( 'related-posts-background-color' ), 'type' => 'control', 'control' => 'ast-color', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ), 'section' => 'section-blog-single', 'transport' => 'postMessage', 'priority' => 14, 'context' => array( true === Astra_Builder_Helper::$is_header_footer_builder_active ? Astra_Builder_Helper::$design_tab_config : Astra_Builder_Helper::$general_tab_config, array( 'setting' => ASTRA_THEME_SETTINGS . '[enable-related-posts]', 'operator' => '==', 'value' => true, ), ), 'title' => __( 'Section Background', 'astra' ), 'divider' => array( 'ast_class' => 'ast-bottom-section-divider' ), ), /** * Option: Related post meta color */ array( 'name' => 'related-posts-meta-color', 'default' => astra_get_option( 'related-posts-meta-color' ), 'tab' => __( 'Normal', 'astra' ), 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-colors-group]', 'section' => 'section-blog-single', 'transport' => 'postMessage', 'control' => 'ast-color', 'title' => __( 'Meta Color', 'astra' ), ), /** * Option: Related hover CTA link color */ array( 'name' => 'related-posts-link-hover-color', 'type' => 'sub-control', 'tab' => __( 'Hover', 'astra' ), 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-colors-group]', 'section' => 'section-blog-single', 'control' => 'ast-color', 'default' => astra_get_option( 'related-posts-link-hover-color' ), 'transport' => 'postMessage', 'title' => __( 'Link Color', 'astra' ), ), /** * Option: Related hover meta link color */ array( 'name' => 'related-posts-meta-link-hover-color', 'type' => 'sub-control', 'tab' => __( 'Hover', 'astra' ), 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-colors-group]', 'section' => 'section-blog-single', 'control' => 'ast-color', 'default' => astra_get_option( 'related-posts-meta-link-hover-color' ), 'transport' => 'postMessage', 'title' => __( 'Meta Link Color', 'astra' ), ), /** * Option: Related Posts Title Font Family */ array( 'name' => 'related-posts-title-font-family', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-title-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-family', 'default' => astra_get_option( 'related-posts-title-font-family' ), 'title' => __( 'Font Family', 'astra' ), 'connect' => ASTRA_THEME_SETTINGS . '[related-posts-title-font-weight]', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Title Font Weight */ array( 'name' => 'related-posts-title-font-weight', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-title-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-weight', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_font_weight' ), 'default' => astra_get_option( 'related-posts-title-font-weight' ), 'title' => __( 'Font Weight', 'astra' ), 'connect' => 'related-posts-title-font-family', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Title Font Size */ array( 'name' => 'related-posts-title-font-size', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-title-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-responsive-slider', 'default' => astra_get_option( 'related-posts-title-font-size' ), 'transport' => 'postMessage', 'title' => __( 'Font Size', 'astra' ), 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ), 'suffix' => array( 'px', 'em' ), 'input_attrs' => array( 'px' => array( 'min' => 0, 'step' => 1, 'max' => 200, ), 'em' => array( 'min' => 0, 'step' => 0.01, 'max' => 20, ), ), ), /** * Option: Related Posts Title Font Extras */ array( 'name' => 'related-posts-title-font-extras', 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-title-typography-group]', 'control' => 'ast-font-extras', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-title-font-extras' ), 'title' => __( 'Font Extras', 'astra' ), ), /** * Option: Related Posts Title Font Family */ array( 'name' => 'related-posts-section-title-font-family', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-section-title-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-family', 'default' => astra_get_option( 'related-posts-section-title-font-family' ), 'title' => __( 'Font Family', 'astra' ), 'connect' => ASTRA_THEME_SETTINGS . '[related-posts-section-title-font-weight]', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Title Font Weight */ array( 'name' => 'related-posts-section-title-font-weight', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-section-title-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-weight', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_font_weight' ), 'default' => astra_get_option( 'related-posts-section-title-font-weight' ), 'title' => __( 'Font Weight', 'astra' ), 'connect' => 'related-posts-section-title-font-family', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Title Font Size */ array( 'name' => 'related-posts-section-title-font-size', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-section-title-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-responsive-slider', 'default' => astra_get_option( 'related-posts-section-title-font-size' ), 'transport' => 'postMessage', 'title' => __( 'Font Size', 'astra' ), 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ), 'suffix' => array( 'px', 'em' ), 'input_attrs' => array( 'px' => array( 'min' => 0, 'step' => 1, 'max' => 200, ), 'em' => array( 'min' => 0, 'step' => 0.01, 'max' => 20, ), ), ), /** * Option: Related Posts Title Font Extras */ array( 'name' => 'related-posts-section-title-font-extras', 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-section-title-typography-group]', 'control' => 'ast-font-extras', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-section-title-font-extras' ), 'title' => __( 'Font Extras', 'astra' ), ), /** * Option: Related Posts Meta Font Family */ array( 'name' => 'related-posts-meta-font-family', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-meta-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-family', 'default' => astra_get_option( 'related-posts-meta-font-family' ), 'title' => __( 'Font Family', 'astra' ), 'connect' => ASTRA_THEME_SETTINGS . '[related-posts-meta-font-weight]', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Meta Font Weight */ array( 'name' => 'related-posts-meta-font-weight', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-meta-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-weight', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_font_weight' ), 'default' => astra_get_option( 'related-posts-meta-font-weight' ), 'title' => __( 'Font Weight', 'astra' ), 'connect' => 'related-posts-meta-font-family', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Meta Font Size */ array( 'name' => 'related-posts-meta-font-size', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-meta-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-responsive-slider', 'default' => astra_get_option( 'related-posts-meta-font-size' ), 'transport' => 'postMessage', 'title' => __( 'Font Size', 'astra' ), 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ), 'suffix' => array( 'px', 'em' ), 'input_attrs' => array( 'px' => array( 'min' => 0, 'step' => 1, 'max' => 200, ), 'em' => array( 'min' => 0, 'step' => 0.01, 'max' => 20, ), ), ), /** * Option: Related Posts Meta Font Extras */ array( 'name' => 'related-posts-meta-font-extras', 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-meta-typography-group]', 'control' => 'ast-font-extras', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-meta-font-extras' ), 'title' => __( 'Font Extras', 'astra' ), ), /** * Option: Related Posts Content Font Family */ array( 'name' => 'related-posts-content-font-family', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-content-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-family', 'default' => astra_get_option( 'related-posts-content-font-family' ), 'title' => __( 'Font Family', 'astra' ), 'connect' => ASTRA_THEME_SETTINGS . '[related-posts-content-font-weight]', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Content Font Weight */ array( 'name' => 'related-posts-content-font-weight', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-content-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-font', 'font_type' => 'ast-font-weight', 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_font_weight' ), 'default' => astra_get_option( 'related-posts-content-font-weight' ), 'title' => __( 'Font Weight', 'astra' ), 'connect' => 'related-posts-content-font-family', 'divider' => array( 'ast_class' => 'ast-sub-bottom-dotted-divider' ), ), /** * Option: Related Posts Content Font Size */ array( 'name' => 'related-posts-content-font-size', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-content-typography-group]', 'section' => 'section-blog-single', 'type' => 'sub-control', 'control' => 'ast-responsive-slider', 'default' => astra_get_option( 'related-posts-content-font-size' ), 'transport' => 'postMessage', 'title' => __( 'Font Size', 'astra' ), 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ), 'suffix' => array( 'px', 'em' ), 'input_attrs' => array( 'px' => array( 'min' => 0, 'step' => 1, 'max' => 200, ), 'em' => array( 'min' => 0, 'step' => 0.01, 'max' => 20, ), ), ), /** * Option: Related Posts Content Font Extras. */ /** * Option: Related Posts Meta Font Extras */ array( 'name' => 'related-posts-content-font-extras', 'type' => 'sub-control', 'parent' => ASTRA_THEME_SETTINGS . '[related-posts-content-typography-group]', 'control' => 'ast-font-extras', 'section' => 'section-blog-single', 'default' => astra_get_option( 'related-posts-content-font-extras' ), 'title' => __( 'Font Extras', 'astra' ), ), ); $configurations = array_merge( $configurations, $_configs ); return $configurations; } } /** * Kicking this off by creating NEW instance. */ new Astra_Related_Posts_Configs(); class-astra-related-posts-loader.php 0000666 00000022350 15166677303 0013546 0 ustar 00 <?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 ) { /** * Update Astra default color and typography values. To not update directly on existing users site, added backwards. * * @since 4.0.0 */ $apply_new_default_color_typo_values = Astra_Dynamic_CSS::astra_check_default_color_typo(); $astra_options = Astra_Theme_Options::get_astra_options(); // 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'] = $apply_new_default_color_typo_values ? 'var(--ast-global-color-2)' : ''; $defaults['related-posts-link-color'] = ''; $defaults['related-posts-title-color'] = $apply_new_default_color_typo_values ? 'var(--ast-global-color-2)' : ''; $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'] = $apply_new_default_color_typo_values ? '1.25' : ''; $defaults['related-posts-section-title-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-section-title-font-extras'] ) && isset( $astra_options['related-posts-section-title-line-height'] ) ? $astra_options['related-posts-section-title-line-height'] : '1.6', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-section-title-font-extras'] ) && isset( $astra_options['related-posts-section-title-text-transform'] ) ? $astra_options['related-posts-section-title-text-transform'] : '', 'text-decoration' => '', ); $defaults['related-posts-section-title-font-size'] = array( 'desktop' => $apply_new_default_color_typo_values ? '26' : '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'] = $apply_new_default_color_typo_values ? '500' : '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', ); $defaults['related-posts-title-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-title-font-extras'] ) && isset( $astra_options['related-posts-title-line-height'] ) ? $astra_options['related-posts-title-line-height'] : '1', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-title-font-extras'] ) && isset( $astra_options['related-posts-title-text-transform'] ) ? $astra_options['related-posts-title-text-transform'] : '', 'text-decoration' => '', ); // 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', ); $defaults['related-posts-meta-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-meta-font-extras'] ) && isset( $astra_options['related-posts-meta-line-height'] ) ? $astra_options['related-posts-meta-line-height'] : '1.6', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-meta-font-extras'] ) && isset( $astra_options['related-posts-meta-text-transform'] ) ? $astra_options['related-posts-meta-text-transform'] : '', 'text-decoration' => '', ); // Related Posts - Content typo. $defaults['related-posts-content-font-family'] = 'inherit'; $defaults['related-posts-content-font-weight'] = 'inherit'; $defaults['related-posts-content-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-content-font-extras'] ) && isset( $astra_options['related-posts-content-line-height'] ) ? $astra_options['related-posts-content-line-height'] : '', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-content-font-extras'] ) && isset( $astra_options['related-posts-content-text-transform'] ) ? $astra_options['related-posts-content-text-transform'] : '', 'text-decoration' => '', ); $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(); class-astra-related-posts-markup.php 0000666 00000031652 15166677303 0013604 0 ustar 00 <?php /** * Related Posts 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. } /** * Breadcrumbs Markup Initial Setup * * @since 3.5.0 */ class Astra_Related_Posts_Markup { /** * Constructor */ public function __construct() { add_action( 'astra_entry_after', array( $this, 'astra_related_posts_markup' ), 10 ); } /** * Enable/Disable Single Post -> Related Posts section. * * @since 3.5.0 * @return void */ public function astra_related_posts_markup() { if ( astra_target_rules_for_related_posts() ) { $this->astra_get_related_posts(); } } /** * Related Posts markup. * * @since 3.5.0 * @return bool */ public function astra_get_related_posts() { global $post; $post_id = $post->ID; $related_posts_title = astra_get_option( 'related-posts-title' ); $related_post_meta = astra_get_option( 'related-posts-meta-structure' ); $related_post_structure = astra_get_option_meta( 'related-posts-structure' ); $exclude_ids = apply_filters( 'astra_related_posts_exclude_post_ids', array( $post_id ), $post_id ); $related_posts_total_count = absint( astra_get_option( 'related-posts-total-count', 2 ) ); // Get related posts by WP_Query. $query_posts = $this->astra_get_related_posts_by_query( $post_id ); if ( $query_posts ) { if ( ! $query_posts->have_posts() ) { return apply_filters( 'astra_related_posts_no_posts_avilable_message', '', $post_id ); } // Added flag to load wrapper section 'ast-single-related-posts-container' only once, because as we removed 'posts__not_in' param from WP_Query and we conditionally handle posts__not_in below so it needs to verify if there are other posts as well to load, then only we will display wrapper. $related_posts_section_loaded = false; do_action( 'astra_related_posts_loop_before' ); /** * WP_Query posts loop. * * Used $post_counter & ( $post_counter < $total_posts_count ) condition to manage posts in while loop because there is case where manual 'post__not_in' condition handling scenario fails within loop. * * # CASE EXAMPLE - If total posts set to 4 (where 'post__not_in' not used in WP_Query) so there is a chance that out of those 4 posts, 1 post will be currently active on frontend. * * So what will happen in this case - Within following loop the current post will exclude by if condition & only 3 posts will be shown up. * * To avoid such cases $post_counter & ( $post_counter < $total_posts_count ) condition used. * * @since 3.5.0 */ $post_counter = 1; $total_posts_count = $related_posts_total_count + 1; while ( $query_posts->have_posts() && $post_counter < $total_posts_count ) { $query_posts->the_post(); $post_id = get_the_ID(); $output_str = astra_get_post_meta( $related_post_meta ); if ( is_array( $exclude_ids ) && ! in_array( $post_id, $exclude_ids ) ) { if ( false === $related_posts_section_loaded ) { echo '<div class="ast-single-related-posts-container">'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped do_action( 'astra_related_posts_title_before' ); if ( '' !== $related_posts_title ) { echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 'astra_related_posts_title', sprintf( '<div class="ast-related-posts-title-section"> <%1$s class="ast-related-posts-title"> %2$s </%1$s> </div>', 'h2', $related_posts_title ) ); } do_action( 'astra_related_posts_title_after' ); echo '<div class="ast-related-posts-wrapper">'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped $related_posts_section_loaded = true; } ?> <article <?php post_class( 'ast-related-post' ); ?>> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <?php // Render post based on order of Featured Image & Title-Meta. if ( is_array( $related_post_structure ) ) { foreach ( $related_post_structure as $post_thumb_title_order ) { if ( 'featured-image' === $post_thumb_title_order ) { do_action( 'astra_related_post_before_featured_image', $post_id ); $this->astra_get_related_post_featured_image( $post_id ); do_action( 'astra_related_post_after_featured_image', $post_id ); } else { ?> <header class="entry-header related-entry-header"> <?php $this->astra_get_related_post_title( $post_id ); echo apply_filters( 'astra_related_posts_meta_html', '<div class="entry-meta">' . $output_str . '</div>', $output_str ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> </header> <?php } } } ?> <div class="entry-content clear"> <?php $this->astra_get_related_post_excerpt( $post_id ); $this->astra_get_related_post_read_more( $post_id ); ?> </div> </div> </div> </article> <?php $post_counter++; } wp_reset_postdata(); } if ( true === $related_posts_section_loaded ) { echo '</div> </div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } do_action( 'astra_related_posts_loop_after' ); } } /** * Render Post CTA button HTML marup. * * @param int $current_post_id current post ID. * * @since 3.5.0 */ public function astra_get_related_post_read_more( $current_post_id ) { if ( ! astra_get_option( 'enable-related-posts-excerpt' ) ) { return; } $related_posts_content_type = apply_filters( 'astra_related_posts_content_type', 'excerpt' ); if ( 'full-content' === $related_posts_content_type ) { return; } $target = apply_filters( 'astra_related_post_cta_target', '_self' ); $cta_text = apply_filters( 'astra_related_post_read_more_text', astra_get_option( 'blog-read-more-text' ) ); $show_read_more_as_button = apply_filters( 'astra_related_post_read_more_as_button', astra_get_option( 'blog-read-more-as-button' ) ); $class = ''; if ( $show_read_more_as_button ) { $class = 'ast-button'; } $custom_class = apply_filters( 'astra_related_post_cta_custom_classes', $class ); do_action( 'astra_related_post_before_cta', $current_post_id ); ?> <p class="ast-related-post-cta read-more"> <a class="ast-related-post-link <?php echo esc_attr( $custom_class ); ?>" href="<?php echo esc_url( apply_filters( 'astra_related_post_link', get_the_permalink(), $current_post_id ) ); ?>" aria-label="<?php echo esc_attr__( 'Related post link', 'astra' ); ?>" target="<?php echo esc_attr( $target ); ?>" rel="bookmark noopener noreferrer"><?php echo esc_html( $cta_text ); ?></a> </p> <?php do_action( 'astra_related_post_after_cta', $current_post_id ); } /** * Related Posts Excerpt markup. * * @param int $current_post_id current post ID. * * @since 3.5.0 */ public function astra_get_related_post_excerpt( $current_post_id ) { if ( ! astra_get_option( 'enable-related-posts-excerpt' ) ) { return; } $related_posts_content_type = apply_filters( 'astra_related_posts_content_type', 'excerpt' ); if ( 'full-content' === $related_posts_content_type ) { return the_content(); } $excerpt_length = absint( astra_get_option( 'related-posts-excerpt-count' ) ); $excerpt = wp_trim_words( get_the_excerpt(), $excerpt_length ); if ( ! $excerpt ) { $excerpt = null; } $excerpt = apply_filters( 'astra_related_post_excerpt', $excerpt, $current_post_id ); do_action( 'astra_related_post_before_excerpt', $current_post_id ); ?> <p class="ast-related-post-excerpt entry-content clear"> <?php echo wp_kses_post( $excerpt ); ?> </p> <?php do_action( 'astra_related_post_after_excerpt', $current_post_id ); } /** * Render Post Title HTML. * * @param int $current_post_id current post ID. * * @since 3.5.0 */ public function astra_get_related_post_title( $current_post_id ) { $related_post_structure = astra_get_option_meta( 'related-posts-structure' ); if ( ! in_array( 'title-meta', $related_post_structure ) ) { return; } $target = apply_filters( 'astra_related_post_title_opening_target', '_self' ); $title_tag = apply_filters( 'astra_related_post_title_tag', 'h3' ); do_action( 'astra_related_post_before_title', $current_post_id ); ?> <<?php echo esc_html( $title_tag ); ?> class="ast-related-post-title entry-title"> <a href="<?php echo esc_url( apply_filters( 'astra_related_post_link', get_the_permalink(), $current_post_id ) ); ?>" target="<?php echo esc_attr( $target ); ?>" rel="bookmark noopener noreferrer"><?php the_title(); ?></a> </<?php echo esc_html( $title_tag ); ?>> <?php do_action( 'astra_related_post_after_title', $current_post_id ); } /** * Render Featured Image HTML. * * @param int $current_post_id current post ID. * @param string $before Markup before thumbnail image. * @param string $after Markup after thumbnail image. * @param boolean $echo Output print or return. * @return string|null * * @since 3.5.0 */ public function astra_get_related_post_featured_image( $current_post_id, $before = '', $after = '', $echo = true ) { $related_post_structure = astra_get_option_meta( 'related-posts-structure' ); if ( ! in_array( 'featured-image', $related_post_structure ) ) { return; } $post_thumb = apply_filters( 'astra_related_post_featured_image_markup', get_the_post_thumbnail( $current_post_id, apply_filters( 'astra_related_posts_thumbnail_default_size', 'large' ), apply_filters( 'astra_related_posts_thumbnail_itemprop', '' ) ) ); $appended_class = has_post_thumbnail( $current_post_id ) ? 'post-has-thumb' : 'ast-no-thumb'; $featured_img_markup = '<div class="ast-related-post-featured-section ' . $appended_class . '">'; if ( '' !== $post_thumb ) { $featured_img_markup .= '<div class="post-thumb-img-content post-thumb">'; $featured_img_markup .= astra_markup_open( 'ast-related-post-image', array( 'open' => '<a %s>', 'echo' => false, 'attrs' => array( 'class' => '', 'href' => esc_url( get_permalink() ), ), ) ); $featured_img_markup .= $post_thumb; $featured_img_markup .= '</a> </div>'; } $featured_img_markup = apply_filters( 'astra_related_post_featured_image_after', $featured_img_markup ); $featured_img_markup .= '</div>'; $featured_img_markup = apply_filters( 'astra_related_post_thumbnail', $featured_img_markup, $before, $after ); if ( false === $echo ) { return $before . $featured_img_markup . $after; } echo $before . $featured_img_markup . $after; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Get related posts based on configurations. * * @param int $post_id Current Post ID. * * @since 3.5.0 * * @return WP_Query|bool */ public function astra_get_related_posts_by_query( $post_id ) { $term_ids = array(); $current_post_type = get_post_type( $post_id ); $related_posts_total_count = absint( astra_get_option( 'related-posts-total-count', 2 ) ); // Taking one post extra in loop because if current post excluded from while loop then this extra one post will cover total post count. Apperently avoided 'post__not_in' from WP_Query. $updated_total_posts_count = $related_posts_total_count + 1; $related_posts_order_by = astra_get_option( 'related-posts-order-by', 'date' ); $related_posts_order = astra_get_option( 'related-posts-order', 'desc' ); $related_posts_based_on = astra_get_option( 'related-posts-based-on', 'categories' ); $query_args = array( 'update_post_meta_cache' => false, 'posts_per_page' => $updated_total_posts_count, 'no_found_rows' => true, 'post_status' => 'publish', 'post_type' => $current_post_type, 'orderby' => $related_posts_order_by, 'fields' => 'ids', 'order' => $related_posts_order, ); if ( 'tags' === $related_posts_based_on ) { $terms = get_the_tags( $post_id ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $term_ids = wp_list_pluck( $terms, 'term_id' ); } $query_args['tag__in'] = $term_ids; } else { $terms = get_the_category( $post_id ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $term_ids = wp_list_pluck( $terms, 'term_id' ); } $query_args['category__in'] = $term_ids; } $query_args = apply_filters( 'astra_related_posts_query_args', $query_args ); return new WP_Query( $query_args ); } } /** * Kicking this off by creating NEW instance. */ new Astra_Related_Posts_Markup(); class-astra-related-posts.php 0000666 00000002563 15166677303 0012306 0 ustar 00 <?php /** * Related Posts 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. } define( 'ASTRA_RELATED_POSTS_DIR', ASTRA_THEME_DIR . 'inc/modules/related-posts/' ); /** * Related Posts Initial Setup * * @since 3.5.0 */ class Astra_Related_Posts { /** * Constructor function that initializes required actions and hooks * * @since 3.5.0 */ public function __construct() { // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once ASTRA_RELATED_POSTS_DIR . 'class-astra-related-posts-loader.php'; require_once ASTRA_RELATED_POSTS_DIR . 'class-astra-related-posts-markup.php'; // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound // Include front end files. if ( ! is_admin() ) { require_once ASTRA_RELATED_POSTS_DIR . 'css/static-css.php'; // phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once ASTRA_RELATED_POSTS_DIR . 'css/dynamic-css.php'; // phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } } } /** * Kicking this off by creating NEW instance. */ new Astra_Related_Posts();
| ver. 1.4 |
Github
|
.
| PHP 5.4.45 | Generation time: 0 |
proxy
|
phpinfo
|
Settings