????
| Current Path : /home2/morganrand/backup.morganrand.com/wp-content/themes/wanderfuls/framework/ |
| Current File : /home2/morganrand/backup.morganrand.com/wp-content/themes/wanderfuls/framework/excerpts.php |
<?php
/**
* Custom excerpt functions
*
* http://codex.wordpress.org/Function_Reference/wp_trim_words
*
* @package Wanderfuls WordPress Theme
* @subpackage Framework
*/
/**
* Get or generate excerpts
*
* @since Wanderfuls 1.0.0
*/
function tb_excerpt( $args ) {
echo tb_get_excerpt( $args );
}
/**
* Get or generate excerpts
*
* @since 2.0.0
*/
function tb_get_excerpt( $args = array() ) {
// Fallback for old method
if ( ! is_array( $args ) ) {
$args = array(
'length' => $args,
);
}
// Setup default arguments
$defaults = array(
'output' => '',
'length' => '30',
'readmore' => false,
'readmore_link' => '',
'more' => '…',
);
// Parse arguments
$args = wp_parse_args( $args, $defaults );
// Filter args
$args = apply_filters( 'tb_excerpt_args', $args );
// Extract args
extract( $args );
// Sanitize data
$excerpt = intval( $length );
// If length is empty or zero return
if ( empty( $length ) || '0' == $length || false == $length ) {
return;
}
// Get global post
$post = get_post();
// Display password protected notice
if ( $post->post_password ) :
$output = __( 'This is a password protected post.', 'tb' );
$output = apply_filters( 'tb_password_protected_excerpt', $output );
$output = '<p>'. $output .'</p>';
return $output;
endif;
// Get post data
$post_id = $post->ID;
$post_content = $post->post_content;
$post_excerpt = $post->post_excerpt;
// Get post excerpt
if ( $post_excerpt ) {
$post_excerpt = apply_filters( 'the_content', $post_excerpt );
}
// If has custom excerpt
if ( $post_excerpt ) :
// Display custom excerpt
$output = $post_excerpt;
// Create Excerpt
else :
// Return the content including more tag
if ( '9999' == $length ) {
return apply_filters( 'the_content', get_the_content( '', '…' ) );
}
// Return the content excluding more tag
if ( '-1' == $length ) {
return apply_filters( 'the_content', $post_content );
}
// Check for text shortcode in post
if ( strpos( $post_content, '[vc_column_text]' ) ) {
$pattern = '{\[vc_column_text\](.*?)\[/vc_column_text\]}is';
preg_match( $pattern, $post_content, $match );
if ( isset( $match[1] ) ) {
$excerpt = strip_shortcodes( $match[1] );
$excerpt = wp_trim_words( $excerpt, $length, $more );
} else {
$content = strip_shortcodes( $post_content );
$excerpt = wp_trim_words( $content, $length, $more );
}
}
// No text shortcode so lets strip out shortcodes and return the content
else {
$content = strip_shortcodes( $post_content );
$excerpt = wp_trim_words( $content, $length, $more );
}
// Add excerpt to output
if ( $excerpt ) {
$output .= '<p>'. $excerpt .'</p>';
}
endif;
// Add readmore link to output if enabled
if ( $readmore ) :
$read_more_text = isset( $args['read_more_text'] ) ? $args['read_more_text'] : __( 'Read more', 'tb' );
$output .= '<a href="'. get_permalink( $post_id ) .'" title="'.$read_more_text .'" rel="bookmark" class="tb-readmore theme-button">'. $read_more_text .' <span class="tb-readmore-rarr">→</span></a>';
endif;
// Apply filters for easier customization
$output = apply_filters( 'tb_excerpt_output', $output );
// Echo output
return $output;
}
/**
* Custom excerpt length for posts
*
* @since Wanderfuls 1.0.0
*/
function tb_excerpt_length() {
// Theme panel length setting
$length = tb_get_mod( 'blog_excerpt_length', '40' );
// Taxonomy setting
if ( is_category() ) {
// Get taxonomy meta
$term = get_query_var( 'cat' );
$term_data = get_option( "category_$term" );
if ( ! empty( $term_data['tb_term_excerpt_length'] ) ) {
$length = $term_data['tb_term_excerpt_length'];
}
}
// Return length and add filter for quicker child theme editign
return apply_filters( 'tb_excerpt_length', $length );
}
/**
* Change default read more style
*
* @since Wanderfuls 1.0.0
*/
function tb_excerpt_more( $more ) {
return '…';
}
add_filter( 'excerpt_more', 'tb_excerpt_more', 10 );
/**
* Change default excerpt length
*
* @since Wanderfuls 1.0.0
*/
function tb_custom_excerpt_length( $length ) {
return '40';
}
add_filter( 'excerpt_length', 'tb_custom_excerpt_length', 999 );
/**
* Prevent Page Scroll When Clicking the More Link
* http://codex.wordpress.org/Customizing_the_Read_More
*
* @since Wanderfuls 1.0.0
*/
function tb_remove_more_link_scroll( $link ) {
$link = preg_replace( '|#more-[0-9]+|', '', $link );
return $link;
}
add_filter( 'the_content_more_link', 'tb_remove_more_link_scroll' );