/**
* General Functions
*
*/
defined( 'ABSPATH' ) || exit; // Exit if accessed directly
/**
* Get the components of theme mobile header
*/
if( ! function_exists( 'tie_mobile_header_components' ) ) {
function tie_mobile_header_components( $area ){
$mobile_header_components = array(
'menu' => tie_mobile_menu_icon(),
'search' => '
'. esc_html__( 'Search for', TIELABS_TEXTDOMAIN ) .'
',
'skin' => '
'. esc_html__( 'Switch skin', TIELABS_TEXTDOMAIN ) .'
',
);
// Login and user account
if( is_user_logged_in() ){
ob_start();
tie_login_form();
$login_form = ob_get_clean();
$current_user = wp_get_current_user();
$mobile_header_components['login'] = '
'.
get_avatar( $current_user->ID, apply_filters( 'TieLabs/Login/avatar_size', 30 ) ) .'
'. esc_html__( 'Your Profile', TIELABS_TEXTDOMAIN ) .'
';
}
else {
$mobile_header_components['login'] = '
';
}
// WooCommerce Cart
if ( TIELABS_WOOCOMMERCE_IS_ACTIVE ){
$mobile_header_components['cart'] = tie_component_button_cart();
}
// BuddyPress
if ( TIELABS_BUDDYPRESS_IS_ACTIVE ){
$mobile_header_components['bp_notifications'] = tie_component_button_bp_notifications();
}
// Check the active components
$components = array();
foreach ( $mobile_header_components as $key => $html ) {
if( tie_get_option( 'mobile_header_components_'.$key ) == $area ){
$components[ $key ] = '';
}
}
//
$components = apply_filters( 'TieLabs/Mobile/Header/Components', $components, $area );
if( ! empty( $components ) ){
echo '';
}
// If Header layout is centered we need to place the div even if it is empty || FLEX
elseif ( tie_get_option( 'mobile_header' ) == 'centered' ) {
echo '';
}
return false;
}
}
/**
* Mobile Menu icon
*/
if( ! function_exists( 'tie_mobile_menu_icon' ) ) {
function tie_mobile_menu_icon(){
if( ! tie_get_option( 'mobile_header_components_menu' ) ){
return false;
}
$menu_icon = tie_get_option( 'mobile_menu_icon', 1 );
$class = 'tie-mobile-menu-icon ';
if( is_numeric( $menu_icon ) ){
$class .= "nav-icon is-layout-$menu_icon";
}
else{
$class .= "tie-icon-$menu_icon";
}
$class_wrapper = tie_get_option( 'mobile_menu_text' ) ? 'menu-text-wrapper' : '';
$mobile_icon = '';
return $mobile_icon;
}
}
/**
* Mobile Header Components Main area
*/
if( ! function_exists( 'tie_mobile_header_components_area_1' ) ) {
add_action( 'TieLabs/Logo/before', 'tie_mobile_header_components_area_1' );
function tie_mobile_header_components_area_1(){
tie_mobile_header_components( 'area_1' );
}
}
/**
* Mobile Header Components
*/
if( ! function_exists( 'tie_mobile_header_components_area_2' ) ) {
add_action( 'TieLabs/Logo/after', 'tie_mobile_header_components_area_2' );
function tie_mobile_header_components_area_2(){
tie_mobile_header_components( 'area_2' );
}
}/**
* Filters
*
*/
defined( 'ABSPATH' ) || exit; // Exit if accessed directly
class TIELABS_FILTERS {
/**
* Runs on class initialization. Adds filters and actions.
*/
function __construct() {
// Add Support for Shortcodes in the terms descriptions
add_filter( 'term_description', 'do_shortcode' );
add_action( 'init', array( $this, 'init_hook' ) );
add_action( 'init', array( $this, 'redirect_random_post' ) );
add_action( 'wp_head', array( $this, 'meta_description' ) );
add_action( 'wp_head', array( $this, 'meta_generator' ) );
add_action( 'wp_head', array( $this, 'x_ua_compatible' ) );
add_action( 'wp_footer', array( $this, 'footer_inline_scripts' ), 999 );
add_action( 'wp_footer', array( $this, 'footer_misc' ) );
add_action( 'wp_footer', array( $this, 'popup_module' ) );
add_action( 'comment_class', array( $this, 'is_avatar_enabled' ) );
add_filter( 'pre_get_posts', array( $this, 'search_filters' ) );
add_filter( 'pre_get_posts', array( $this, 'category_posts_order' ) );
add_filter( 'TieLabs/cache_key', array( $this, 'cache_key' ) );
add_filter( 'widget_tag_cloud_args', array( $this, 'tag_widget_limit' ) );
add_filter( 'widget_title', array( $this, 'tagcloud_widget_title' ), 10, 3 );
add_filter( 'login_headerurl', array( $this, 'dashboard_login_logo_url' ) );
add_filter( 'login_head', array( $this, 'dashboard_login_logo' ) );
add_filter( 'get_the_archive_title', array( $this, 'archive_title' ), 15 );
add_filter( 'wp_link_pages_args', array( $this, 'pages_next_and_number' ) );
add_filter( 'excerpt_more', array( $this, 'excerpt_more' ) );
add_filter( 'get_the_excerpt', array( $this, 'post_excerpt' ), 9 );
add_filter( 'has_post_thumbnail', array( $this, 'has_post_thumbnail' ) );
add_filter( 'post_thumbnail_html', array( $this, 'default_featured_image' ), 10, 5 );
add_filter( 'TieLabs/exclude_content', 'TIELABS_HELPER::strip_shortcodes' );
add_filter( 'wp_get_attachment_image_src', array( $this, 'gif_image' ), 10, 4 );
add_filter( 'wp_get_attachment_image_attributes', array( $this, 'small_thumb_image_class' ), 10, 3 );
add_filter( 'TieLabs/Primary_Category/custom', array( $this, 'yoast_seo_primary_category' ) );
// Translations
if( tie_get_option( 'translations' ) ){
add_filter( 'gettext', array( $this, 'theme_translation' ), 10, 3 );
}
if( tie_get_option( 'translation_numbers' ) ){
add_filter( 'get_the_date', array( $this, 'translate_numbers' ), 55 );
add_filter( 'get_comment_date', array( $this, 'translate_numbers' ), 55 );
add_filter( 'get_comment_time', array( $this, 'translate_numbers' ), 55 );
add_filter( 'comments_number', array( $this, 'translate_numbers' ), 55 );
add_filter( 'wp_list_categories', array( $this, 'translate_numbers' ), 55 );
add_filter( 'TieLabs/number_format', array( $this, 'translate_numbers' ), 55 );
add_filter( 'TieLabs/post_date', array( $this, 'translate_numbers' ), 55 );
add_filter( 'TieLabs/reading_time', array( $this, 'translate_numbers' ), 55 );
add_filter( 'TieLabs/post_views_number', array( $this, 'translate_numbers' ), 55 );
add_filter( 'TieLabs/Social_Counters/number', array( $this, 'translate_numbers' ), 55 );
add_filter( 'TieLabs/Weather/number', array( $this, 'translate_numbers' ), 55 );
}
}
/**
* init_hook
*/
function init_hook(){
/*if( current_user_can( 'manage_options' ) ){
add_filter( 'the_content', array( $this, 'shortcodes_notice' ) );
}
*/
//WordPress doesn't recognize it as RTL language because there is an error in the main translation file of the Sindhi language!
if( get_locale() == 'snd' && ! is_rtl() ){
global $wp_locale;
$wp_locale->text_direction = 'rtl';
}
}
/**
* Add notice for the shortcodes plugin
*/
function shortcodes_notice( $content ){
// Don't show the message if this is excerpt OR backend OR AMP
if(
is_admin() ||
( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) ||
in_array( 'parse_request', $GLOBALS['wp_current_filter'] ) ||
in_array( 'get_the_excerpt', $GLOBALS['wp_current_filter'] ) ){
return $content;
}
$message = '';
// Timetable and Event Schedule Plugin
if( ! TIELABS_MPTIMETABLE_IS_ACTIVE ){
if( strpos( $content, '[mp-timetable' ) !== false ){
$message .= TIELABS_HELPER::notice_message( sprintf(
esc_html__( 'This section contains some shortcodes that requries the %2$s%1$s%3$s Plugin.', TIELABS_TEXTDOMAIN ),
'Timetable and Event Schedule',
'',
''
), false );
}
}
// Contact Form 7 Plugin
if( ! class_exists( 'WPCF7' ) ){
if( strpos( $content, '[contact-form-7' ) !== false ){
$message .= TIELABS_HELPER::notice_message( sprintf(
esc_html__( 'This section contains some shortcodes that requries the %2$s%1$s%3$s Plugin.', TIELABS_TEXTDOMAIN ),
'Contact Form 7',
'',
''
), false) ;
}
}
// Return the content with message
return apply_filters( 'TieLabs/shortcodes_check', $message, $content ) . $content;
}
/**
* x_ua_compatible
*/
function x_ua_compatible(){
echo '';
}
/**
* meta_escription
*/
function meta_description(){
// Return if the description option is disabled or the Yoast SEO or Rank Math SEO plugins are active
if( ! tie_get_option( 'post_meta_escription' ) || class_exists( 'WPSEO_Frontend' ) || class_exists( 'RankMath' ) ){
return;
}
// Single Page doesn't have a builder
if( is_singular() && ! TIELABS_HELPER::has_builder() ){
$post = get_post();
if( ! empty( $post->post_content ) ){
$description = apply_filters( 'TieLabs/exclude_content', $post->post_content );
}
}
// Archives
elseif( get_the_archive_description() ){
$description = get_the_archive_description();
}
// Default
if( empty( $description ) ){
$description = get_bloginfo( 'description' );
}
if( ! empty( $description ) ){
$description = strip_tags( strip_shortcodes( $description ) );
echo ' ';
}
}
/**
* Theme translations
*/
function theme_translation( $translation, $text, $domain ){
if( $domain == TIELABS_TEXTDOMAIN || $domain == 'amp' ){
$translations = tie_get_option( 'translations' );
if( ! empty( $translations ) ){ // To minimize the calls of sanitize_title
$sanitize_text = sanitize_title( htmlspecialchars( $text ) );
if( ! empty( $translations[ $sanitize_text ] ) ){
return htmlspecialchars_decode( $translations[ $sanitize_text ] );
}
}
}
return $translation;
}
/**
* Add the inline scripts to the Footer
*/
function footer_inline_scripts(){
// Check if we are in an AMP page
if( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ){
return;
}
// Print the inline scripts if the BWP is active
if( ! empty( $GLOBALS['tie_inline_scripts'] ) && TIELABS_HELPER::is_js_minified() ){
echo '';
}
}
/**
* Add Misc Footer Conetnt
*/
function footer_misc(){
// Check if we are in an AMP page
if( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ){
return;
}
// Custom Footer Code
if ( tie_get_option( 'footer_code' ) ){
echo do_shortcode( apply_filters( 'TieLabs/footer_code', tie_get_option( 'footer_code' ) ) );
}
// Reading Position Indicator
if ( tie_get_option( 'reading_indicator' ) && is_single() && ! tie_get_option( 'autoload_posts' ) ){
echo '';
}
// Live Search
if(
tie_menu_has_search( 'top_nav', true ) ||
tie_menu_has_search( 'main_nav', true ) ||
( tie_get_option( 'mobile_header_components_search') && tie_get_option( 'mobile_header_live_search') )
){
echo '';
}
// Scrollbar - Used to get the default scrollbar width.
echo '';
// Facebook buttons
echo '';
}
/**
* Add the Popup module to the footer
*/
function popup_module(){
// Check if we are in an AMP page
if( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ){
return;
}
TIELABS_HELPER::get_template_part( 'templates/popup' );
}
/**
* Add an extra class to the comment item if the avatar is active
*/
function is_avatar_enabled( $classes ){
if( is_array( $classes ) && get_option( 'show_avatars' ) ){
$classes[] = 'has-avatar';
}
return $classes;
}
/**
* Exclude post types and categories From Search results
*/
function search_filters( $query ){
if( is_admin() || isset( $_GET['post_type'] ) ){
return $query;
}
if( is_search() && $query->is_main_query() ){
// Exclude Post types from search
if ( ($exclude_post_types = tie_get_option( 'search_exclude_post_types' )) && is_array( $exclude_post_types ) ){
$args = array(
'public' => true,
'exclude_from_search' => false,
);
$post_types = get_post_types( $args );
foreach ( $exclude_post_types as $post_type ){
unset( $post_types[ $post_type ] );
}
$query->set( 'post_type', $post_types );
}
// Exclude specific categoies from search
if ( tie_get_option( 'search_cats' ) ){
$query->set( 'cat', tie_get_option( 'search_cats' ) );
}
}
return $query;
}
/**
* Change the posts order in the category page
*/
function category_posts_order( $query ){
if( ! is_admin() && is_category() && $query->is_main_query() ){
$current_category = get_queried_object();
if( ! empty( $current_category->term_id ) ){
$posts_order = tie_get_category_option( 'posts_order', $current_category->term_id );
// Posts Order
if( ! empty( $posts_order ) ){
if( $posts_order == 'views' && tie_get_option( 'tie_post_views' ) ){ // Most Viewd posts
$query->set( 'orderby', 'meta_value_num' );
$query->set( 'meta_key', apply_filters( 'TieLabs/views_meta_field', 'tie_views' ) );
}
elseif( $posts_order == 'popular' ){ // Popular Posts by comments
$query->set( 'orderby', 'comment_count' );
}
elseif( $posts_order == 'title' ){
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
else{
$query->set( 'orderby', $posts_order );
}
}
}
}
return $query;
}
/**
* Random Article
*/
function redirect_random_post(){
if( wp_doing_ajax() ){
return;
}
if( isset( $_GET['random-post'] ) && ( tie_get_option( 'top-nav-components_random' ) || tie_get_option( 'main-nav-components_random' ) ) ) {
$args = array(
'posts_per_page' => 1,
'orderby' => 'rand',
'fields' => 'ids',
'no_found_rows' => true,
'ignore_sticky_posts' => true,
);
$random_post = new WP_Query ( $args );
while ( $random_post->have_posts () ){
$random_post->the_post();
wp_redirect( get_permalink() );
exit;
}
}
}
/**
* Widgets Small Image Class
*
* By default WordPress uses 2 classes attachment-{size} size-{size}
* we need to add a general class doesn't linked with the thumb name
*/
function small_thumb_image_class( $attr, $attachment, $size = false ) {
if( ! empty( $size ) && $size == TIELABS_THEME_SLUG.'-image-small' ){
$attr['class'] .= ' tie-small-image';
}
return $attr;
}
/**
* Gif images
*/
function gif_image( $image, $attachment_id, $size, $icon ){
if( ! tie_get_option( 'disable_featured_gif' ) ){
$file_type = ! empty( $image[0] ) ? wp_check_filetype( $image[0] ) : false;
if( ! empty( $file_type ) && $file_type['ext'] == 'gif' && $size != 'full' ){
$full_image = wp_get_attachment_image_src( $attachment_id, $size = 'full', $icon );
// For the avatars we need to keep the original width and height
if( ! empty( $full_image ) && in_array( 'get_avatar', $GLOBALS['wp_current_filter'] ) ){
$full_image[1] = $image[1];
$full_image[2] = $image[2];
}
return $full_image;
}
}
return $image;
}
/**
* Modify Excerpts
*/
function post_excerpt( $text = '' ){
$raw_excerpt = $text;
if ( '' == $text ){
//$text = get_the_content( '' ); // Causes issues with the new Posts List Blocks
$_post = get_post();
$text = ! empty( $_post->post_content ) ? $_post->post_content : '';
$text = apply_filters( 'TieLabs/exclude_content', $text );
/**
* If images with class wp-image-{ID} exists in the conetnt, WordPress make a DB request to get andd add the srcset
* Since we are in excerpt we don't need that, Great affect on archives pages
*/
$text = str_replace( 'wp-image-', 'tie-image', $text );
$text = strip_shortcodes( $text );
$text = apply_filters( 'the_content', $text );
$text = str_replace( ']]>', ']]>', $text );
$excerpt_length = apply_filters( 'excerpt_length', 55 );
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[…]' );
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
return apply_filters( 'wp_trim_excerpt', $text, $raw_excerpt );
}
/**
* Global Cache Key
*/
function cache_key( $key ){
return 'tie-cache-'. TIELABS_HELPER::get_locale() . $key;
}
/**
* Change the number of tags in the cloud tags
*/
function tag_widget_limit( $args ){
if( isset($args['taxonomy']) && $args['taxonomy'] == 'post_tag' ){
$args['number'] = 18;
}
return $args;
}
/**
* Remove the default Tag CLoud titles if the title field is empty
*/
function tagcloud_widget_title( $title = false, $instance = false, $id_base = false ){
if( $id_base == 'tag_cloud' && empty( $instance['title'] ) ){
return false;
}
return $title;
}
/**
* Custom Dashboard login URL
*/
function dashboard_login_logo_url(){
if( tie_get_option( 'dashboard_logo_url' ) ){
return tie_get_option( 'dashboard_logo_url' );
}
}
/**
* Custom Dashboard login page logo
*/
function dashboard_login_logo(){
if( tie_get_option( 'dashboard_logo' ) ){
echo '';
}
}
/**
* Remove anything that looks like an archive title prefix ("Archive:", "Foo:", "Bar:").
*/
function archive_title( $title ){
if ( is_category() ) {
return single_cat_title( '', false );
}
elseif ( is_tag() ) {
return single_tag_title( '', false );
}
elseif ( is_author() ) {
return '' . get_the_author() . '';
}
elseif ( is_post_type_archive() ) {
return post_type_archive_title( '', false );
}
elseif ( is_tax() ) {
return single_term_title( '', false );
}
return $title;
}
/**
* Add Number and Next / prev multiple post pages
*/
function pages_next_and_number( $args ){
if( $args['next_or_number'] == 'next_and_number' ){
global $page, $numpages, $multipage, $more;
$args['next_or_number'] = 'number';
$prev = '';
$next = '';
if ( $multipage && $more ){
$i = $page - 1;
if ( $i && $more ){
$prev .= _wp_link_page($i);
$prev .= $args['link_before']. $args['previouspagelink'] . $args['link_after'] . '';
}
$i = $page + 1;
if ( $i <= $numpages && $more ){
$next .= _wp_link_page($i);
$next .= $args['link_before']. $args['nextpagelink'] . $args['link_after'] . '';
}
}
$args['before'] = $args['before'].$prev;
$args['after'] = $next.$args['after'];
}
return $args;
}
/**
* Excerpt More
*/
function excerpt_more( $more ){
return ' …';
}
/**
* Theme Generator Meta
*/
function meta_generator(){
$active_theme = wp_get_theme();
if ( is_child_theme() ) {
$active_theme = wp_get_theme( $active_theme->Template );
}
if( ! empty( $active_theme->Name ) ){
$theme_info = apply_filters( 'TieLabs/theme_meta_generator', $active_theme->Name .' '. TIELABS_DB_VERSION );
if( ! empty( $theme_info ) ){
echo "\n" . "" . "\n";
}
}
}
/**
* If the post doesn't have a Primary Category, use the Primary Category of Yoast if it is available
*/
function yoast_seo_primary_category( $category = false ){
if( class_exists( 'WPSEO_Meta' ) ){
$wpseo_primary_term = get_post_meta( get_the_id(), WPSEO_Meta::$meta_prefix . 'primary_category', true );
if( ! empty( $wpseo_primary_term ) ){
$get_the_category = TIELABS_WP_HELPER::get_term_by( 'id', $wpseo_primary_term, 'category' );
if ( ! empty( $get_the_category ) && ! is_wp_error( $get_the_category ) ) {
return $get_the_category;
}
}
}
return false;
}
/**
* Always return true, If there is a default featured image
*/
function has_post_thumbnail( $has_thumbnail ) {
if( tie_get_option( 'default_featured_image' ) && tie_get_option( 'default_featured_image_id' ) ){
$has_thumbnail = true;
}
return $has_thumbnail;
}
/**
* Set a default featured image if it is missing
*/
function default_featured_image( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
// Return if the post has a featured image
if( ! empty( $html ) ){
return $html;
}
// Check if the default eatured image option is active
if( ! tie_get_option( 'default_featured_image' ) || ! tie_get_option( 'default_featured_image_id' ) ){
return $html;
}
$default_thumbnail_id = tie_get_option( 'default_featured_image_id' ); // select the default thumb.
return wp_get_attachment_image( $default_thumbnail_id, $size, false, $attr );
}
/**
* Translate numbers
*/
function translate_numbers( $the_number ) {
if( ! ( is_admin() && ! wp_doing_ajax() ) ) {
$translated_numbers = tie_get_option( 'translation_numbers' );
if( ! empty( $translated_numbers ) && is_array( $translated_numbers ) && count( $translated_numbers ) == 10 ){
$original_numbers = array( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' );
return str_replace( $original_numbers, $translated_numbers, $the_number );
}
}
return $the_number;
}
}
// Single instance.
$TIELABS_FILTERS = new TIELABS_FILTERS();
/**
* Taqyeem Class
*
*/
defined( 'ABSPATH' ) || exit; // Exit if accessed directly
if( ! class_exists( 'TIELABS_TAQYEEM' ) ) {
class TIELABS_TAQYEEM{
/**
* __construct
*
* Class constructor where we will call our filter and action hooks.
*/
function __construct(){
// Disable if the Taqyeem plugin is not active
if( ! TIELABS_TAQYEEM_IS_ACTIVE ){
return;
}
// Disable the Custom Styles and Typofraphy options
add_filter( 'taqyeem_custom_styles', '__return_false' );
// Disable Updater and Verification
add_filter( 'Taqyeem/Updater/disable', '__return_true' );
add_filter( 'Taqyeem/Verification/disable', '__return_true' );
// Disable the plugin Rich Snippets
add_filter( 'tie_taqyeem_rich_snippets', '__return_false' );
// Remove Shortcodes code and Keep the content
add_filter( 'taqyeem_exclude_content', 'TIELABS_HELPER::strip_shortcodes' );
// Dequeue Scripts and Styles
add_filter( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 50 );
// Dequeue Scripts and Styles
add_filter( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 50 );
// Change the reviews head box class
add_filter( 'taqyeem_reviews_head_classes', array( $this, 'review_head_class' ) );
// Alter the Queries
add_filter( 'TieLabs/Query/args', array( $this, 'best_reviews_query' ), 10, 2 );
// Alter the Related Posts Query
add_filter( 'TieLabs/related_posts_query', array( $this, 'related_posts_query' ) );
// Alter the Check Also box Query
add_filter( 'TieLabs/checkalso_query', array( $this, 'checkalso_query' ) );
// Default Widgets Posts Thumb Size
add_filter( 'tie_taqyeem_widget_thumb_size', array( $this, 'reviews_thumb_size' ) );
// Allow the Rview Rich Snippet on Pages
add_filter( 'TieLabs/is_page_rich_snippet', array( $this, 'rich_snippet_for_page' ) );
// Change the Review Rich Snippet
add_filter( 'TieLabs/rich_snippet_schema', array( $this, 'review_rich_snippet' ) );
// Add Best Reviews to the post order option menu.
add_filter( 'TieLabs/Options/Related/post_order_args', array( $this, 'posts_order_args' ) );
add_filter( 'TieLabs/Options/Checkalso/post_order_args', array( $this, 'posts_order_args' ) );
add_filter( 'TieLabs/Builder/Block/post_order_args', array( $this, 'posts_order_args' ) );
add_filter( 'TieLabs/Settings/Category/posts_order', array( $this, 'posts_order_args' ) );
add_filter( 'TieLabs/Widget/Slider/post_order_args', array( $this, 'posts_order_args' ) );
add_filter( 'TieLabs/Widget/Posts/post_order_args', array( $this, 'posts_order_args_2' ) );
// Prevent Taqyeem from displaying the review box in the content block in the builder
add_action( 'TieLabs/Builder/before', array( $this, 'remove_review_block' ) );
// Replace the old icon classes with the new classes of Font Awesome 5.0
add_filter( 'taqyeem_buttons_icon', array( $this, 'replace_icon_fa5' ) );
}
/**
* Allow the Rview Rich Snippet on Pages
*/
function rich_snippet_for_page(){
if( tie_get_postdata( 'taq_review_position' ) ){
return true;
}
}
/**
* Change the Review Rich Snippet
*/
function review_rich_snippet( $schema ){
// Check if the Taqyeem Structured Data is active, current post has review and the Taqyeem version is >= 2.3.0
if( ! taqyeem_get_option( 'structured_data' ) || ! tie_get_postdata( 'taq_review_position' ) || ! function_exists( 'taqyeem_review_get_rich_snippet' ) ){
return $schema;
}
// Unset some data
unset( $schema['articleBody'] );
unset( $schema['articleSection'] );
// Get the Review structure data
$review_rich_snippet = taqyeem_review_get_rich_snippet();
if( $review_rich_snippet['@type'] == 'product' ){
$schema = $review_rich_snippet;
}
else{
// Add the data to the post structure data
$schema['@type'] = 'review';
$schema['itemReviewed'] = $review_rich_snippet['itemReviewed'];
$schema['reviewBody'] = $review_rich_snippet['reviewBody'];
$schema['reviewRating'] = $review_rich_snippet['reviewRating'];
}
// return the modefied data
return $schema;
}
/**
* Change the reviews head box class
*/
function review_head_class( $class ){
return tie_get_box_class( $class );
}
/**
* Alter the query for the best reviews
*/
function best_reviews_query( $args, $block ){
if( ! empty( $block['order'] ) && $block['order'] == 'best' ){
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'taq_review_score';
}
return $args;
}
/**
* Alter the Related Posts Query
*/
function related_posts_query( $args ){
if( tie_get_option( 'related_order' ) == 'best' ){
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'taq_review_score';
}
return $args;
}
/**
* Alter the Check Also Query
*/
function checkalso_query( $args ){
if( tie_get_option( 'check_also_order' ) == 'best' ){
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'taq_review_score';
}
return $args;
}
/**
* Add Best Reviews to the post order option menu.
*/
function posts_order_args( $args ){
$args['best'] = esc_html__( 'Best Reviews', TIELABS_TEXTDOMAIN );
return $args;
}
/**
* Add Best Reviews to the post order option menu.
*/
function posts_order_args_2( $args ){
$args['standard']['best'] = esc_html__( 'Best Reviews', TIELABS_TEXTDOMAIN );
return $args;
}
/**
* Default Widgets Posts Thumb Size
*/
function reviews_thumb_size(){
return TIELABS_THEME_SLUG.'-image-small';
}
/**
* Prevent Taqyeem from displaying the review box in the content block in the builder
*/
function remove_review_block(){
remove_filter( 'the_content', 'taqyeem_insert_review' );
}
/**
* Dequeue Scripts and Styles
*/
function enqueue_scripts(){
wp_dequeue_script( 'taqyeem-main' );
wp_dequeue_style( 'taqyeem-style' );
wp_enqueue_style( 'taqyeem-styles', TIELABS_TEMPLATE_URL.'/assets/css/plugins/taqyeem'. TIELABS_STYLES::is_minified() .'.css', array(), TIELABS_DB_VERSION, 'all' );
if( ! is_admin() ){
wp_dequeue_style( 'taqyeem-fontawesome' );
}
}
/**
* Dequeue Scripts and Styles from admin
*/
function admin_enqueue_scripts(){
// Don't Load the main Font Awesome file of the theme in the add/edit posts screens, avoid issue with Taqyeem Button which uses v4.0
if( function_exists( 'tie_taqyeem_button_output' ) && get_post_type() ){
wp_dequeue_style( 'tie-fontawesome' );
}
}
/**
* Replace the old icon classes with the new classes of Font Awesome 5.0
*/
function replace_icon_fa5( $icon ){
return tie_fa4_to_fa5_value_migration( $icon );
}
}
// Instantiate the class
new TIELABS_TAQYEEM();
}