ID ); ?>

is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts','enjoypress_search_filter'); endif; /** * Filter the except length to 40 characters. * * @param int $length Excerpt length. * @return int (Maybe) modified excerpt length. */ if ( ! function_exists( 'enjoypress_custom_excerpt_length' ) ) : function enjoypress_custom_excerpt_length( $length ) { if ( is_admin() ) { return $length; } else { return '40'; } } add_filter( 'excerpt_length', 'enjoypress_custom_excerpt_length', 999 ); endif; /** * Customize excerpt more. */ if ( ! function_exists( 'enjoypress_excerpt_more' ) ) : function enjoypress_excerpt_more( $more ) { if ( is_admin() ) { return $more; } else { return '... '; } } add_filter( 'excerpt_more', 'enjoypress_excerpt_more' ); endif; /** * Display the first (single) category of post. */ if ( ! function_exists( 'enjoypress_first_category' ) ) : function enjoypress_first_category() { $category = get_the_category(); if ($category) { echo '' . esc_html( $category[0]->name ) .' '; } } endif; /** * Returns true if a blog has more than 1 category. * * @return bool */ if ( ! function_exists( 'enjoypress_categorized_blog' ) ) : function enjoypress_categorized_blog() { if ( false === ( $all_the_cool_cats = get_transient( 'enjoypress_categories' ) ) ) { // Create an array of all the categories that are attached to posts. $all_the_cool_cats = get_categories( array( 'fields' => 'ids', 'hide_empty' => 1, // We only need to know if there is more than one category. 'number' => 2, ) ); // Count the number of categories that are attached to the posts. $all_the_cool_cats = count( $all_the_cool_cats ); set_transient( 'enjoypress_categories', $all_the_cool_cats ); } if ( $all_the_cool_cats > 1 ) { // This blog has more than 1 category so enjoypress_categorized_blog should return true. return true; } else { // This blog has only 1 category so enjoypress_categorized_blog should return false. return false; } } endif; /** * Flush out the transients used in enjoypress_categorized_blog. */ if ( ! function_exists( 'enjoypress_category_transient_flusher' ) ) : function enjoypress_category_transient_flusher() { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Like, beat it. Dig? delete_transient( 'enjoypress_categories' ); } add_action( 'edit_category', 'enjoypress_category_transient_flusher' ); add_action( 'save_post', 'enjoypress_category_transient_flusher' ); endif; /** * Fix skip link focus in IE11. * * This does not enqueue the script because it is tiny and because it is only for IE11, * thus it does not warrant having an entire dedicated blocking script being loaded. * * @link https://git.io/vWdr2 */ function enjoypress_skip_link_focus_fix() { // The following is minified via `terser --compress --mangle -- js/skip-link-focus-fix.js`. ?> array( 'class' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, 'aria-hidden' => true, 'role' => true, 'focusable' => true, ), 'path' => array( 'fill' => true, 'fill-rule' => true, 'd' => true, 'transform' => true, ), 'polygon' => array( 'fill' => true, 'fill-rule' => true, 'points' => true, 'transform' => true, 'focusable' => true, ), ) ); if ( ! $svg ) { return false; } return $svg; } } /** * Miscellaneous */ /** * Toggles animation duration in milliseconds. * * @return int Duration in milliseconds */ function enjoypress_toggle_duration() { /** * Filters the animation duration/speed used usually for submenu toggles. * * @since EnjoyPress 1.0 * * @param int $duration Duration in milliseconds. */ $duration = apply_filters( 'enjoypress_toggle_duration', 250 ); return $duration; } /** * Menus */ /** * Filters classes of wp_list_pages items to match menu items. * * Filter the class applied to wp_list_pages() items with children to match the menu class, to simplify. * styling of sub levels in the fallback. Only applied if the match_menu_classes argument is set. * * @param string[] $css_class An array of CSS classes to be applied to each list item. * @param WP_Post $page Page data object. * @param int $depth Depth of page, used for padding. * @param array $args An array of arguments. * @param int $current_page ID of the current page. * @return array CSS class names. */ function enjoypress_filter_wp_list_pages_item_classes( $css_class, $page, $depth, $args, $current_page ) { // Only apply to wp_list_pages() calls with match_menu_classes set to true. $match_menu_classes = isset( $args['match_menu_classes'] ); if ( ! $match_menu_classes ) { return $css_class; } // Add current menu item class. if ( in_array( 'current_page_item', $css_class, true ) ) { $css_class[] = 'current-menu-item'; } // Add menu item has children class. if ( in_array( 'page_item_has_children', $css_class, true ) ) { $css_class[] = 'menu-item-has-children'; } return $css_class; } add_filter( 'enjoypress_page_css_class', 'enjoypress_filter_wp_list_pages_item_classes', 10, 5 ); /** * Adds a Sub Nav Toggle to the Expanded Menu and Mobile Menu. * * @param stdClass $args An object of wp_nav_menu() arguments. * @param WP_Post $item Menu item data object. * @param int $depth Depth of menu item. Used for padding. * @return stdClass An object of wp_nav_menu() arguments. */ function enjoypress_add_sub_toggles_to_main_menu( $args, $item, $depth ) { // Add sub menu toggles to the Expanded Menu with toggles. if ( isset( $args->show_toggles ) && $args->show_toggles ) { // Wrap the menu item link contents in a div, used for positioning. $args->before = '
'; $args->after = ''; // Add a toggle to items with children. if ( in_array( 'menu-item-has-children', $item->classes, true ) ) { $toggle_target_string = '.menu-modal .menu-item-' . $item->ID . ' > .sub-menu'; $toggle_duration = enjoypress_toggle_duration(); // Add the sub menu toggle. $args->after .= ''; } // Close the wrapper. $args->after .= '
'; // Add sub menu icons to the primary menu without toggles. } elseif ( 'primary' === $args->theme_location ) { if ( in_array( 'menu-item-has-children', $item->classes, true ) ) { $args->after = ''; } else { $args->after = ''; } } return $args; } add_filter( 'nav_menu_item_args', 'enjoypress_add_sub_toggles_to_main_menu', 10, 3 ); /* * Customize archive title */ add_filter( 'get_the_archive_title', function ($title) { if ( is_category() ) { $title = single_cat_title( '', false ); } elseif ( is_tag() ) { $title = single_tag_title( '', false ); } elseif ( is_author() ) { $title = '' . get_the_author() . '' ; } elseif ( is_tax() ) { $title = single_term_title( '', false ); } elseif (is_post_type_archive()) { $title = post_type_archive_title( '', false ); } return $title; });