'slider-swiper', 'menu_name' => esc_html__('Sliders', 'dotspice'), 'singular_name' => esc_html__('Slider', 'dotspice'), 'multiple_name' => esc_html__('Sliders', 'dotspice'), 'show_in_menu' => 'theme-settings', 'public' => false, 'publicly_queryable' => false, 'menu_icon' => 'dashicons-images-alt', 'supports' => array('title') ); return $post_types; } add_filter('dotspice_cpt', 'dotspice_ss_post_type'); /** * Slider Swiper | Admin | Scortcode */ function dotspice_ss_get_shortcode($post_id) { if (!empty($post_id)) { $shortcode = '[slider-swiper id="' . $post_id . '"]'; echo ''; } } /** * Slider Swiper | Admin | After Title */ function dotspice_ss_add_shortcode_after_title($post) { if ($post->post_type === 'slider-swiper') { dotspice_ss_get_shortcode($post->ID); } } add_action('edit_form_after_title', 'dotspice_ss_add_shortcode_after_title'); /** * Slider Swiper | Admin | Post Type Columns */ function dotspice_ss_add_columns($columns) { $columns = array_slice($columns, 0, 2, true) + array('shortcode' => __('Shortcode', 'dotspice')) + array_slice($columns, 2, count($columns) - 2, true); if (isset($columns['pur'])) { unset($columns['pur']); } return $columns; } add_filter('manage_slider-swiper_posts_columns', 'dotspice_ss_add_columns', 99); function dotspice_ss_manage_columns($column_name, $post_id) { if ($column_name == 'shortcode') { dotspice_ss_get_shortcode($post_id); } return $column_name; } add_filter('manage_slider-swiper_posts_custom_column', 'dotspice_ss_manage_columns', 10, 2); /** * Slider Swiper | Shortcode */ function dotspice_ss_shortcode($atts) { if (is_feed()) { return '[slider-swiper]'; } if (!class_exists('acf_pro')) { return '[slider-swiper 404 "Advanced Custom Fields PRO"]'; } $atts = shortcode_atts(array( 'id' => 0 ), $atts); $query_error_message = false; // Post $post_ID = (int) $atts['id']; $post = get_post($post_ID); if (empty($post_ID)) { return '[slider-swiper 404 "ID"]'; } if (empty($post)) { return '[slider-swiper 404 "post"]'; } if ($post->post_status != 'publish') { return '[slider-swiper post_status "' . esc_attr($post->post_status) . '"]'; } if ($post->post_type != 'slider-swiper') { return '[slider-swiper post_type "' . esc_attr($post->post_type) . '"]'; } // Slider $slider_type = get_field('slider_type', $post_ID); $slides_field = ($slider_type != 'default') ? '_' . $slider_type : ''; $slides = get_field('slides' . $slides_field, $post_ID); $classes = array('swiper-slider', 'swiper-container', $post->post_name, 'type-' . $slider_type); $slide_ID = 'swiper-' . $post->post_name; if (!is_array($slides) || count($slides) <= 0) { return '[slider-swiper 404 "slides"]'; } // Settings $settings = get_field('settings', $post_ID); $params = array( 'slidesPerView' => !empty($settings['per_view']) ? (float) $settings['per_view'] : 1, 'spaceBetween' => !empty($settings['space_between']) ? (int) $settings['space_between'] : 0, 'loop' => !empty($settings['loop']) ? (bool) $settings['loop'] : false, 'speed' => !empty($settings['speed']) ? (int) $settings['speed'] : 300, 'loopAdditionalSlides' => 5 ); // Settings | Autoplay if (!empty($settings['autoplay'])) { $params['autoplay'] = array( 'delay' => (int) $settings['autoplay'], ); } // Settings | Effect $effect_field = ($params['slidesPerView'] > 1) ? 'effect_multiple' : 'effect'; $params['effect'] = !empty($settings[$effect_field]) ? esc_attr($settings[$effect_field]) : 'slide'; // Settings | Breakpoints if ($params['slidesPerView'] > 1) { $classes[] = 'grid'; $per_view = $params['slidesPerView']; $per_view_lg = !empty($settings['per_view_lg']) ? (float) $settings['per_view_lg'] : 1; $per_view_md = !empty($settings['per_view_md']) ? (float) $settings['per_view_md'] : 1; $per_view_sm = !empty($settings['per_view_sm']) ? (float) $settings['per_view_sm'] : 1; $params['slidesPerView'] = $per_view_sm; $params['breakpoints'] = array( '576' => array( 'slidesPerView' => $per_view_md, ), '768' => array( 'slidesPerView' => $per_view_lg, ), '992' => array( 'slidesPerView' => $per_view, ), ); // Hidden elems Fix $params['observer'] = true; $params['observeParents'] = true; } // Settings | Navigation if (!empty($settings['navigation'])) { $params['navigation'] = array( 'nextEl' => '.' . esc_attr($slide_ID) . '-button-next', 'prevEl' => '.' . esc_attr($slide_ID) . '-button-prev' ); } // Settings | Scrollbar if (!empty($settings['scrollbar']) && !$settings['loop']) { $params['scrollbar'] = array( 'el' => '.' . esc_attr($slide_ID) . '-scrollbar', 'draggable' => true ); } // Settings | Pagination if (!empty($settings['pagination']) && $settings['pagination'] != 'none') { $params['pagination'] = array( 'el' => '.' . esc_attr($slide_ID) . '-pagination', 'clickable' => true, 'type' => esc_attr($settings['pagination']) ); } // Settings | Auto Height if (!in_array($slider_type, array('default', 'custom'))) { $params['autoHeight'] = true; } ob_start(); ?>