';
}
}
add_action( 'wp_head', 'alchemist_pingback_header' );
/**
* Remove first post from blog as it is already show via recent post template
*/
function alchemist_alter_home( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$cats = get_theme_mod( 'alchemist_front_page_category' );
if ( is_array( $cats ) && ! in_array( '0', $cats ) ) {
$query->query_vars['category__in'] = $cats;
}
$quantity = get_theme_mod( 'alchemist_slider_number', 4 );
$post_list = array(); // list of valid post ids
for( $i = 1; $i <= $quantity; $i++ ){
if ( get_theme_mod( 'alchemist_slider_post_' . $i ) && get_theme_mod( 'alchemist_slider_post_' . $i ) > 0 ) {
$post_list = array_merge( $post_list, array( get_theme_mod( 'alchemist_slider_post_' . $i ) ) );
}
}
if ( ! empty( $post_list ) ) {
$query->query_vars['post__not_in'] = $post_list;
}
}
}
add_action( 'pre_get_posts', 'alchemist_alter_home' );
if ( ! function_exists( 'alchemist_content_nav' ) ) :
/**
* Display navigation/pagination when applicable
*
* @since Alchemist 1.0
*/
function alchemist_content_nav() {
global $wp_query;
// Don't print empty markup in archives if there's only one page.
if ( $wp_query->max_num_pages < 2 && ( is_home() || is_archive() || is_search() ) ) {
return;
}
$pagination_type = get_theme_mod( 'alchemist_pagination_type', 'default' );
/**
* Check if navigation type is Jetpack Infinite Scroll and if it is enabled, else goto default pagination
* if it's active then disable pagination
*/
if ( ( 'infinite-scroll' === $pagination_type ) && class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' ) ) {
return false;
}
if ( 'numeric' === $pagination_type && function_exists( 'the_posts_pagination' ) ) {
the_posts_pagination( array(
'prev_text' => esc_html__( 'Previous', 'alchemist' ),
'next_text' => esc_html__( 'Next', 'alchemist' ),
'before_page_number' => '' . esc_html__( 'Page', 'alchemist' ) . ' ',
) );
} else {
the_posts_navigation();
}
}
endif; // alchemist_content_nav
/**
* Check if a section is enabled or not based on the $value parameter
* @param string $value Value of the section that is to be checked
* @return boolean return true if section is enabled otherwise false
*/
function alchemist_check_section( $value ) {
global $wp_query;
// Get Page ID outside Loop
$page_id = $wp_query->get_queried_object_id();
// Front page displays in Reading Settings
$page_for_posts = get_option('page_for_posts');
return ( 'entire-site' == $value || ( ( is_front_page() || ( is_home() && intval( $page_for_posts ) !== intval( $page_id ) ) ) && 'homepage' == $value ) );
}
/**
* Return the first image in a post. Works inside a loop.
* @param [integer] $post_id [Post or page id]
* @param [string/array] $size Image size. Either a string keyword (thumbnail, medium, large or full) or a 2-item array representing width and height in pixels, e.g. array(32,32).
* @param [string/array] $attr Query string or array of attributes.
* @return [string] image html
*
* @since Alchemist 1.0
*/
function alchemist_get_first_image( $postID, $size, $attr ) {
ob_start();
ob_end_clean();
$image = '';
$output = preg_match_all('//i', get_post_field('post_content', $postID ) , $matches);
if( isset( $matches [1] [0] ) ) {
//Get first image
$first_img = $matches [1] [0];
return '
';
}
return false;
}
function alchemist_get_theme_layout() {
$layout = '';
if ( is_page_template( 'templates/no-sidebar.php' ) ) {
$layout = 'no-sidebar';
} elseif ( is_page_template( 'templates/right-sidebar.php' ) ) {
$layout = 'right-sidebar';
} else {
$layout = get_theme_mod( 'alchemist_default_layout', 'right-sidebar' );
if ( is_front_page() ) {
$layout = get_theme_mod( 'alchemist_homepage_layout', 'no-sidebar' );
} elseif ( is_home() || is_archive() || is_search() ) {
$layout = get_theme_mod( 'alchemist_archive_layout', 'right-sidebar' );
}
}
return $layout;
}
function alchemist_get_posts_columns() {
$columns = 'layout-one';
if ( is_front_page() ) {
$columns = 'layout-one';
}
return $columns;
}
function alchemist_get_sidebar_id() {
$sidebar = '';
$layout = alchemist_get_theme_layout();
if ( 'no-sidebar-full-width' === $layout || 'no-sidebar' === $layout ) {
return $sidebar;
}
if ( is_active_sidebar( 'sidebar-1' ) ) {
$sidebar = 'sidebar-1'; // Primary Sidebar.
}
return $sidebar;
}
/**
* Display social Menu
*/
function alchemist_social_menu() {
if ( has_nav_menu( 'social-menu' ) ) :
?>
$max_characters ) {
//* Truncate $text to $max_characters + 1
$text = mb_substr( $text, 0, $max_characters + 1 );
//* Truncate to the last space in the truncated string
$text = trim( mb_substr( $text, 0, mb_strrpos( $text, ' ' ) ) );
}
return $text;
}
endif; //catch-alchemist_truncate_phrase
if ( ! function_exists( 'alchemist_get_the_content_limit' ) ) :
/**
* Return content stripped down and limited content.
*
* Strips out tags and shortcodes, limits the output to `$max_char` characters, and appends an ellipsis and more link to the end.
*
* @since Alchemist 1.0
*
* @param integer $max_characters The maximum number of characters to return.
* @param string $more_link_text Optional. Text of the more link. Default is "(more...)".
* @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false.
*
* @return string Limited content.
*/
function alchemist_get_the_content_limit( $max_characters, $more_link_text = '(more...)', $stripteaser = false ) {
$content = get_the_content( '', $stripteaser );
// Strip tags and shortcodes so the content truncation count is done correctly.
$content = strip_tags( strip_shortcodes( $content ), apply_filters( 'get_the_content_limit_allowedtags', '