File: /home/joyfejor/public_html/wp-content/themes/onepress/inc/extras.php
<?php
/**
* Custom functions that act independently of the theme templates.
*
* Eventually, some of the functionality here could be replaced by core features.
*
* @package OnePress
*/
/**
* Add a pingback url auto-discovery header for single posts of any post type.
*/
function onepress_pingback_header() {
if ( is_singular() && pings_open() ) {
echo '<link rel="pingback" href="' . esc_url( get_bloginfo( 'pingback_url' ) ) . '">';
}
}
add_action( 'wp_head', 'onepress_pingback_header' );
/**
* Adds custom classes to the array of body classes.
*
* @param array $classes Classes for the body element.
*
* @return array
*/
function onepress_body_classes( $classes ) {
// Adds a class of group-blog to blogs with more than 1 published author.
if ( is_multi_author() ) {
$classes[] = 'group-blog';
}
// Fullwidth template
if ( is_page_template( 'template-fullwidth-stretched.php' ) ) {
$classes[] = 'template-fullwidth-stretched';
}
if ( is_customize_preview() ) {
$classes[] = 'is-customize-preview';
}
if ( is_page() ) {
$hide_page_title = get_post_meta( get_the_ID(), '_hide_page_title', true );
if ( $hide_page_title ) {
$classes[] = 'hiding-page-title';
}
}
if ( get_theme_mod( 'onepress_animation_disable' ) ) {
$classes[] = 'animation-disable';
}
return $classes;
}
add_filter( 'body_class', 'onepress_body_classes' );
if ( ! function_exists( 'onepress_custom_excerpt_length' ) ) :
/**
* Custom excerpt length for the theme
*/
function onepress_custom_excerpt_length( $length ) {
return 30;
}
add_filter( 'excerpt_length', 'onepress_custom_excerpt_length', 999 );
endif;
if ( ! function_exists( 'onepress_new_excerpt_more' ) ) :
/**
* Remove […] string using Filters
*/
function onepress_new_excerpt_more( $more ) {
return ' ...';
}
add_filter( 'excerpt_more', 'onepress_new_excerpt_more' );
endif;
/**
* Get media from a variable
*
* @param array $media
*
* @return false|string
*/
if ( ! function_exists( 'onepress_get_media_url' ) ) {
function onepress_get_media_url( $media = array(), $size = 'full' ) {
$media = wp_parse_args(
$media,
array(
'url' => '',
'id' => '',
)
);
$url = '';
if ( $media['id'] != '' ) {
if ( strpos( get_post_mime_type( $media['id'] ), 'image' ) !== false ) {
$image = wp_get_attachment_image_src( $media['id'], $size );
if ( $image ) {
$url = $image[0];
}
} else {
$url = wp_get_attachment_url( $media['id'] );
}
}
if ( $url == '' && $media['url'] != '' ) {
$id = attachment_url_to_postid( $media['url'] );
if ( $id ) {
if ( strpos( get_post_mime_type( $id ), 'image' ) !== false ) {
$image = wp_get_attachment_image_src( $id, $size );
if ( $image ) {
$url = $image[0];
}
} else {
$url = wp_get_attachment_url( $id );
}
} else {
$url = $media['url'];
}
}
return $url;
}
}
/**
* Same hook for the_content
*
* @TODO: do not effect content by plugins
*
* 8 WP_Embed:run_shortcode
* 8 WP_Embed:autoembed
* 10 wptexturize
* 10 wpautop
* 10 shortcode_unautop
* 10 prepend_attachment
* 10 wp_filter_content_tags || wp_make_content_images_responsive
* 11 capital_P_dangit
* 11 do_shortcode
* 20 convert_smilies
*/
global $wp_embed;
add_filter( 'onepress_the_content', array( $wp_embed, 'run_shortcode' ), 8 );
add_filter( 'onepress_the_content', array( $wp_embed, 'autoembed' ), 8 );
add_filter( 'onepress_the_content', 'wptexturize' );
add_filter( 'onepress_the_content', 'wpautop' );
add_filter( 'onepress_the_content', 'shortcode_unautop' );
add_filter( 'onepress_the_content', 'prepend_attachment' );
if ( function_exists( 'wp_filter_content_tags' ) ) {
add_filter( 'onepress_the_content', 'wp_filter_content_tags' );
} else {
add_filter( 'onepress_the_content', 'wp_make_content_images_responsive' );
}
add_filter( 'onepress_the_content', 'capital_P_dangit' );
add_filter( 'onepress_the_content', 'do_shortcode' );
add_filter( 'onepress_the_content', 'convert_smilies' );
if ( ! function_exists( 'onepress_is_wc_active' ) ) {
function onepress_is_wc_active() {
if ( class_exists( 'WooCommerce' ) || function_exists( 'is_woocommerce' ) ) {
return true;
}
return false;
}
}
if ( ! function_exists( 'onepress_is_wc_archive' ) ) {
function onepress_is_wc_archive() {
if ( function_exists( 'is_product_category' ) || function_exists( 'is_product_tag' ) ) {
if ( is_product_category() || is_product_tag() ) {
return true;
}
}
return false;
}
}
if ( ! function_exists( 'onepress_get_layout' ) ) {
/**
*
*
* @param string $default
*
* @return string|void
*/
function onepress_get_layout( $default = 'right-sidebar' ) {
$layout = get_theme_mod( 'onepress_layout', $default );
if ( onepress_is_wc_active() ) {
if ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() || is_wc_endpoint_url() ) {
$is_active_sidebar = is_active_sidebar( 'sidebar-shop' );
if ( ! $is_active_sidebar ) {
$layout = 'no-sidebar';
}
}
}
/**
* Support single layout
*
* @since 2.1.1
*/
if ( is_singular( 'post' ) ) {
$single_layout = get_theme_mod( 'single_layout', 'default' );
if ( $single_layout != '' && $single_layout != 'default' ) {
$layout = $single_layout;
}
}
return apply_filters( 'onepress_get_layout', $layout, $default );
}
}
/**
* Woocommerce Support
*/
if ( class_exists( 'WooCommerce' ) ) {
remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );
add_filter( 'loop_shop_per_page', 'onepress_number_products_per_page', 20 );
function onepress_number_products_per_page( $number ) {
// $cols contains the current number of products per page based on the value stored on Options -> Reading
// Return the number of products you wanna show per page.
$number = 20;
return $number;
}
}
/**
* Support WPForms plugin
*/
if ( ! defined( 'WPFORMS_SHAREASALE_ID' ) ) {
define( 'WPFORMS_SHAREASALE_ID', '1816909' );
}
if ( ! function_exists( 'onepress_get_video_lightbox_image' ) ) {
/**
* @since 2.0.5
* @return string
*/
function onepress_get_video_lightbox_image() {
$image = get_theme_mod( 'onepress_videolightbox_image' );
return $image;
}
}
if ( ! function_exists( 'onepress_before_section' ) ) {
/**
* @since 2.0.5
*
* @param $section_id
* @param array $args
*/
function onepress_before_section( $section_id, $args = array() ) {
if ( ! isset( $args['_bg_type'] ) ) {
$args['_bg_type'] = '';
}
if ( ! class_exists( 'OnePress_Plus' ) ) {
if ( $section_id == 'videolightbox' ) {
$image = onepress_get_video_lightbox_image();
$image_url = wp_get_attachment_image_url( $image, 'full' );
$image_alt = get_post_meta( $image, '_wp_attachment_image_alt', true );
if ( $image || onepress_is_selective_refresh() ) {
echo '<div class="section-parallax jarallax">';
echo ' <div class="parallax-bg jarallax-img"><img src="' . esc_url( $image_url ) . '" alt="' . esc_attr( $image_alt ) . '"></div>';
}
return;
}
}
switch ( $args['_bg_type'] ) {
case 'video':
$args = wp_parse_args(
$args,
array(
'video_url' => '',
'video_webm_url' => '',
'video_ogv_url' => '',
'image' => '',
)
);
extract( $args );
if ( $video_url || $video_webm_url || $video_ogv_url ) {
$fallback = get_theme_mod( 'onepress_hero_mobile_img' ) ? 'true' : 'false';
?>
<div class="video-section"
data-fallback="<?php echo esc_attr( $fallback ); ?>"
data-mp4="<?php echo esc_url( $video_url ); ?>"
data-webm="<?php echo esc_url( $video_webm_url ); ?>"
data-ogv="<?php echo esc_url( $video_ogv_url ); ?>"
data-bg="<?php echo esc_attr( $image ); ?>">
<?php
}
break;
case 'image':
$args = wp_parse_args(
$args,
array(
'image' => '',
'alpha' => '',
'enable_parallax' => '',
)
);
extract( $args );
if ( $enable_parallax == 1 ) {
$class = 'section-parallax jarallax';
if ( $section_id == 'hero' ) {
$class = ' parallax-hero jarallax';
}
echo '<div id="parallax-' . esc_attr( $section_id ) . '" class="' . esc_attr( $class ) . '">';
echo ' <div class="parallax-bg jarallax-img"><img src="' . esc_url( $image ) . '" alt=""></div>';
} elseif ( $image || $alpha ) { // image bg
echo '<div id="bgimage-' . esc_attr( $section_id ) . '" class="bgimage-alpha bgimage-section bgimage-' . esc_attr( $section_id ) . '">';
}
break;
}// end switch
}
}
if ( ! function_exists( 'onepress_after_section' ) ) {
/**
* @since 2.0.5
*
* @param null $section_id
* @param array $args
*/
function onepress_after_section( $section_id = null, $args = array() ) {
if ( ! isset( $args['_bg_type'] ) ) {
$args['_bg_type'] = '';
}
if ( ! class_exists( 'OnePress_Plus' ) ) {
if ( $section_id == 'videolightbox' ) {
$image = onepress_get_video_lightbox_image();
if ( $image || onepress_is_selective_refresh() ) {
echo '</div>';
}
return;
}
}
switch ( $args['_bg_type'] ) {
case 'video':
$args = wp_parse_args(
$args,
array(
'video_url' => '',
'video_webm_url' => '',
'video_ogv_url' => '',
)
);
extract( $args );
if ( $video_url || $video_webm_url || $video_ogv_url ) {
echo '</div>';
}
break;
case 'image':
$args = wp_parse_args(
$args,
array(
'image' => '',
'alpha' => '',
'enable_parallax' => '',
)
);
extract( $args );
if ( $enable_parallax == 1 ) {
echo '</div>';
} elseif ( $image || $alpha ) { // image bg
echo '</div>';
}
break;
}// end switch
}
}
add_action( 'onepress_before_section_part', 'onepress_before_section', 10, 2 );
add_action( 'onepress_after_section_part', 'onepress_after_section', 10, 2 );
/**
* Retrieve the archive title based on the queried object.
*
* @return string Archive title.
*/
function onepress_get_the_archive_title( $title ) {
$disable = get_theme_mod( 'onepress_disable_archive_prefix', false );
if ( $disable ) {
if ( is_category() ) {
$title = single_cat_title( '', false );
} elseif ( is_tag() ) {
$title = single_tag_title( '', false );
} elseif ( is_author() ) {
$title = '<span class="vcard">' . get_the_author() . '</span>';
} elseif ( is_year() ) {
$title = get_the_date( _x( 'Y', 'yearly archives date format', 'onepress' ) );
} elseif ( is_month() ) {
$title = get_the_date( _x( 'F Y', 'monthly archives date format', 'onepress' ) );
} elseif ( is_day() ) {
$title = get_the_date( _x( 'F j, Y', 'daily archives date format', 'onepress' ) );
} elseif ( is_post_type_archive() ) {
$title = post_type_archive_title( '', false );
} elseif ( is_tax() ) {
$title = single_term_title( '', false );
}
}
return $title;
}
add_filter( 'get_the_archive_title', 'onepress_get_the_archive_title', 15 );
if ( onepress_is_wc_active() ) {
/**
* Template pages
*/
if ( ! function_exists( 'woocommerce_content' ) ) {
/**
* Output WooCommerce content.
*
* This function is only used in the optional 'woocommerce.php' template.
* which people can add to their themes to add basic woocommerce support.
* without hooks or modifying core templates.
*
* @since 2.0.6
*/
function woocommerce_content() {
if ( is_singular( 'product' ) ) {
while ( have_posts() ) :
the_post();
wc_get_template_part( 'content', 'single-product' );
endwhile;
} else {
?>
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
<div class="entry-header">
<h1 class="page-title entry-title"><?php woocommerce_page_title(); ?></h1>
</div>
<?php endif; ?>
<?php do_action( 'woocommerce_archive_description' ); ?>
<?php if ( have_posts() ) : ?>
<?php do_action( 'woocommerce_before_shop_loop' ); ?>
<?php woocommerce_product_loop_start(); ?>
<?php if ( wc_get_loop_prop( 'total' ) ) : ?>
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php woocommerce_product_loop_end(); ?>
<?php do_action( 'woocommerce_after_shop_loop' ); ?>
<?php else : ?>
<?php do_action( 'woocommerce_no_products_found' ); ?>
<?php
endif;
}
}
}
}