<?php
/**
* Functions which enhance the theme by hooking into WordPress
*
* @package eCommerce_Market
*/
/**
* Adds custom classes to the array of body classes.
*
* @param array $classes Classes for the body element.
* @return array
*/
function ecommerce_market_body_classes( $classes ) {
// Adds a class of hfeed to non-singular pages.
if ( ! is_singular() ) {
$classes[] = 'hfeed';
}
if ( is_archive() ) {
$classes[] = 'thumbnail-view';
}
// Add class for global layout.
$sidebar_layout = ecommerce_market_get_option( 'layout_options' );
$sidebar_layout = apply_filters( 'ecommerce_market_filter_theme_global_layout', $sidebar_layout );
$classes[] = 'global-layout-' . esc_attr( $sidebar_layout );
return $classes;
}
add_filter( 'body_class', 'ecommerce_market_body_classes' );
/**
* Add a pingback url auto-discovery header for singularly identifiable articles.
*/
function ecommerce_market_pingback_header() {
if ( is_singular() && pings_open() ) {
echo '<link rel="pingback" href="', esc_url( get_bloginfo( 'pingback_url' ) ), '">';
}
}
add_action( 'wp_head', 'ecommerce_market_pingback_header' );
if ( ! function_exists( 'ecommerce_market_the_excerpt' ) ) :
/**
* Generate excerpt.
*
* @since 1.0.0
*
* @param int $length Excerpt length in words.
* @param WP_Post $post_obj WP_Post instance (Optional).
* @return string Excerpt.
*/
function ecommerce_market_the_excerpt( $length = 0, $post_obj = null ) {
global $post;
if ( is_null( $post_obj ) ) {
$post_obj = $post;
}
$length = absint( $length );
if ( 0 === $length ) {
return;
}
$source_content = $post_obj->post_content;
if ( ! empty( $post_obj->post_excerpt ) ) {
$source_content = $post_obj->post_excerpt;
}
$source_content = preg_replace( '`\[[^\]]*\]`', '', $source_content );
$trimmed_content = wp_trim_words( $source_content, $length, '…' );
return $trimmed_content;
}
endif;
function ecommerce_market_hex_color($color, $opacity = false) {
$default = 'rgb(0,0,0)';
if (empty($color))
return $default;
if ($color[0] == '#')
$color = substr($color, 1);
if (strlen($color) == 6)
$hex = array($color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5]);
elseif (strlen($color) == 3)
$hex = array($color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2]);
else
return $default;
$rgb = array_map('hexdec', $hex);
if ($opacity) {
if (abs($opacity) > 1)
$opacity = 1.0;
$output = 'rgba(' . implode(",", $rgb) . ',' . $opacity . ')';
} else {
$output = 'rgb(' . implode(",", $rgb) . ')';
}
return $output;
}
/**
* Ecommerce Market Breadcrumb
*
*
*/
if ( ! function_exists( 'ecommerce_market_breadcrumb' ) ) :
/**
* Simple breadcrumb.
*
* @since 1.0.0
*
* @link: https://gist.github.com/melissacabral/4032941
*
* @param array $args Arguments
*/
function ecommerce_market_breadcrumb( $args = array() ) {
// Bail if Home Page.
if ( is_front_page() || is_home() ) {
return;
}
if ( ! function_exists( 'breadcrumb_trail' ) ) {
require_once trailingslashit(get_template_directory()) . '/inc/breadcrumbs.php';
}
$breadcrumb_args = array(
'container' => 'div',
'show_browse' => false,
);
breadcrumb_trail( $breadcrumb_args );
}
endif;
/**
* Register the required plugins for this theme.
*
* This function is hooked into `tgmpa_register`, which is fired on the WP `init` action on priority 10.
*/
function ecommerce_market_register_required_plugins() {
/*
* Array of plugin arrays. Required keys are name and slug.
* If the source is NOT from the .org repo, then source is also required.
*/
$plugins = array(
array(
'name' => esc_html__( 'Woocommerce', 'ecommerce-market' ), //The plugin name
'slug' => 'woocommerce', // The plugin slug (typically the folder name)
'required' => false, // If false, the plugin is only 'recommended' instead of required.
'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch.
'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins.
),
array(
'name' => esc_html__( 'YITH WooCommerce Wishlist', 'ecommerce-market' ), //The plugin name
'slug' => 'yith-woocommerce-wishlist', // The plugin slug (typically the folder name)
'required' => false, // If false, the plugin is only 'recommended' instead of required.
'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch.
'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins.
),
array(
'name' => esc_html__( 'Contact Form 7', 'ecommerce-market' ), //The plugin name
'slug' => 'contact-form-7', // The plugin slug (typically the folder name)
'required' => false, // If false, the plugin is only 'recommended' instead of required.
'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch.
'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins.
)
);
$config = array(
'id' => 'ecommerce-market', // Unique ID for hashing notices for multiple instances of TGMPA.
'default_path' => '', // Default absolute path to bundled plugins.
'has_notices' => true, // Show admin notices or not.
'dismissable' => true, // If false, a user cannot dismiss the nag message.
'dismiss_msg' => '', // If 'dismissable' is false, this message will be output at top of nag.
'is_automatic' => false, // Automatically activate plugins after installation or not.
'message' => '', // Message to output right before the plugins table.
);
tgmpa( $plugins, $config );
}
add_action( 'tgmpa_register', 'ecommerce_market_register_required_plugins' );