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;
if ( ! function_exists( 'nature_bliss_simple_breadcrumb' ) ) :
/**
* Simple breadcrumb.
*
* @since 1.0.0
*/
function nature_bliss_simple_breadcrumb() {
if ( ! function_exists( 'breadcrumb_trail' ) ) {
require_once get_template_directory() . '/lib/breadcrumbs/breadcrumbs.php';
}
$breadcrumb_args = array(
'container' => 'div',
'show_browse' => false,
);
breadcrumb_trail( $breadcrumb_args );
}
endif;
if ( ! function_exists( 'nature_bliss_fonts_url' ) ) :
/**
* Return fonts URL.
*
* @since 1.0.0
*
* @return string Font URL.
*/
function nature_bliss_fonts_url() {
$fonts_url = '';
$fonts = array();
$subsets = 'latin,latin-ext';
/* translators: If there are characters in your language that are not supported by Roboto, translate this to 'off'. Do not translate into your own language. */
if ( 'off' !== _x( 'on', 'Roboto font: on or off', 'nature-bliss' ) ) {
$fonts[] = 'Roboto:300,300i,400,400i,500,500i,700,700i';
}
/* translators: If there are characters in your language that are not supported by Montserrat, translate this to 'off'. Do not translate into your own language. */
if ( 'off' !== _x( 'on', 'Montserrat font: on or off', 'nature-bliss' ) ) {
$fonts[] = 'Montserrat:300,300i,400,400i,500,500i,600,600i,700,700i';
}
if ( $fonts ) {
$fonts_url = add_query_arg( array(
'family' => urlencode( implode( '|', $fonts ) ),
'subset' => urlencode( $subsets ),
), '//fonts.googleapis.com/css' );
}
return $fonts_url;
}
endif;
if( ! function_exists( 'nature_bliss_primary_navigation_fallback' ) ) :
/**
* Fallback for primary navigation.
*
* @since 1.0.0
*/
function nature_bliss_primary_navigation_fallback() {
echo '
';
}
endif;
if ( ! function_exists( 'nature_bliss_the_custom_logo' ) ) :
/**
* Render logo.
*
* @since 2.0
*/
function nature_bliss_the_custom_logo() {
if ( function_exists( 'the_custom_logo' ) ) {
the_custom_logo();
}
}
endif;
/**
* Sanitize post ID.
*
* @since 1.0.0
*
* @param string $key Field key.
* @param array $field Field detail.
* @param mixed $value Raw value.
* @return mixed Sanitized value.
*/
function nature_bliss_widget_sanitize_post_id( $key, $field, $value ) {
$output = '';
$value = absint( $value );
if ( $value ) {
$not_allowed = array( 'revision', 'attachment', 'nav_menu_item' );
$post_type = get_post_type( $value );
if ( ! in_array( $post_type, $not_allowed ) && 'publish' === get_post_status( $value ) ) {
$output = $value;
}
}
return $output;
}
if ( ! function_exists( 'nature_bliss_get_index_page_id' ) ) :
/**
* Get front index page ID.
*
* @since 1.0.0
*
* @param string $type Type.
* @return int Corresponding Page ID.
*/
function nature_bliss_get_index_page_id( $type = 'front' ) {
$page = '';
switch ( $type ) {
case 'front':
$page = get_option( 'page_on_front' );
break;
case 'blog':
$page = get_option( 'page_for_posts' );
break;
default:
break;
}
$page = absint( $page );
return $page;
}
endif;
if ( ! function_exists( 'nature_bliss_render_select_dropdown' ) ) :
/**
* Render select dropdown.
*
* @since 1.0.0
*
* @param array $main_args Main arguments.
* @param string $callback Callback method.
* @param array $callback_args Callback arguments.
* @return string Rendered markup.
*/
function nature_bliss_render_select_dropdown( $main_args, $callback, $callback_args = array() ) {
$defaults = array(
'id' => '',
'name' => '',
'selected' => 0,
'echo' => true,
'add_default' => false,
);
$r = wp_parse_args( $main_args, $defaults );
$output = '';
$choices = array();
if ( is_callable( $callback ) ) {
$choices = call_user_func_array( $callback, $callback_args );
}
if ( ! empty( $choices ) || true === $r['add_default'] ) {
$output = "\n";
}
if ( $r['echo'] ) {
echo $output;
}
return $output;
}
endif;