/** * This function registers various Customizer options for this theme. */ public function customize_register($wp_customize) { // Load custom Customizer API assets include_once get_template_directory() . '/customizer/class-baton-customizer-conductor-control.php'; // Baton Customizer Conductor Control // Grab the Baton Conductor instance $baton_conductor = Baton_Conductor_Instance(); /** * Baton Conductor */ // Section $wp_customize->add_section('baton_conductor', array('priority' => 40, 'title' => __('Blog Display', 'baton'), 'description' => sprintf(__('This is a preview of our Conductor Widget. <a href="%1$s" target="_blank">Install our Conductor plugin</a> for even better ways to control your content.', 'baton'), esc_url('https://conductorplugin.com/?utm_source=baton&utm_medium=link&utm_content=baton-conductor&utm_campaign=baton')))); /* * Settings */ // Disabled $wp_customize->add_setting('baton_conductor[disabled]', array('default' => apply_filters('theme_mod_baton_conductor_disabled', $baton_conductor->defaults['disabled']), 'sanitize_callback' => 'baton_boolval')); // Enhanced Display Disabled $wp_customize->add_setting('baton_conductor[enhanced_display_disabled]', array('default' => apply_filters('theme_mod_baton_conductor_enhanced_display_disabled', $baton_conductor->defaults['enhanced_display_disabled']), 'sanitize_callback' => 'baton_boolval')); // Title $wp_customize->add_setting('baton_conductor[title]', array('default' => apply_filters('theme_mod_baton_conductor_title', $baton_conductor->defaults['title']), 'sanitize_callback' => 'sanitize_text_field')); // Posts Per Page $wp_customize->add_setting('baton_conductor[posts_per_page]', array('default' => apply_filters('theme_mod_baton_conductor_posts_per_page', $baton_conductor->defaults['posts_per_page']), 'sanitize_callback' => 'absint')); // Category $wp_customize->add_setting('baton_conductor[category]', array('default' => apply_filters('theme_mod_baton_conductor_category', $baton_conductor->defaults['category']), 'sanitize_callback' => 'absint')); // Flexbox $wp_customize->add_setting('baton_conductor[flexbox_columns]', array('default' => apply_filters('theme_mod_baton_conductor_flexbox_columns', $baton_conductor->defaults['flexbox_columns']), 'sanitize_callback' => 'absint')); // Output $wp_customize->add_setting('baton_conductor[output]', array('default' => apply_filters('theme_mod_baton_conductor_output', $baton_conductor->defaults['output']), 'sanitize_callback' => array($this, 'sanitize_output'), 'sanitize_js_callback' => array($this, 'sanitize_js_output'))); // Excerpt Length $wp_customize->add_setting('baton_conductor[excerpt_length]', array('default' => apply_filters('theme_mod_baton_conductor_excerpt_length', $baton_conductor->defaults['excerpt_length']), 'sanitize_callback' => 'absint')); // Featured Image Size $wp_customize->add_setting('baton_conductor[post_thumbnails_size]', array('default' => apply_filters('theme_mod_baton_conductor_post_thumbnails_size', $baton_conductor->defaults['post_thumbnails_size']), 'sanitize_callback' => 'sanitize_text_field')); /* * Controls */ // Disabled $wp_customize->add_control(new SDS_Theme_Options_Customize_Checkbox_Control($wp_customize, 'baton_conductor[disabled]', array('label' => __('Blog Display', 'baton'), 'description' => __('Use this setting to enable or disable Blog Display <sup>by Conductor</sup>.', 'baton'), 'section' => 'baton_enable_disable_features', 'settings' => 'baton_conductor[disabled]', 'priority' => 10, 'active_callback' => 'baton_has_blog_front_page', 'type' => 'checkbox', 'css_class' => 'baton-conductor-disabled', 'css_id' => 'baton_conductor_disabled', 'checked_label' => __('Yes', 'baton'), 'unchecked_label' => __('No', 'baton'), 'style' => array('before' => 'width: 38%; text-align: center;', 'after' => 'width: 38%; padding: 0 6px; text-align: center; right: 0;')))); // Enhanced Display Disabled $wp_customize->add_control(new SDS_Theme_Options_Customize_Checkbox_Control($wp_customize, 'baton_conductor[enhanced_display_disabled]', array('label' => __('Enhanced Blog Display', 'baton'), 'description' => __('Use this setting to enable or disable the enhanced Blog Display <sup>by Conductor</sup>.', 'baton'), 'section' => 'baton_enable_disable_features', 'settings' => 'baton_conductor[enhanced_display_disabled]', 'priority' => 20, 'active_callback' => 'baton_conductor_customizer_active_callback', 'type' => 'checkbox', 'css_class' => 'baton-conductor-enhanced-display-disabled', 'css_id' => 'baton_conductor_enhanced_display_disabled', 'checked_label' => __('Yes', 'baton'), 'unchecked_label' => __('No', 'baton'), 'style' => array('before' => 'width: 38%; text-align: center;', 'after' => 'width: 38%; padding: 0 6px; text-align: center; right: 0;')))); // Conductor $wp_customize->add_control(new Baton_Customize_Conductor_Control($wp_customize, 'baton_conductor', array('label' => __('Conductor', 'baton'), 'section' => 'baton_conductor', 'settings' => array('title' => 'baton_conductor[title]', 'posts_per_page' => 'baton_conductor[posts_per_page]', 'category' => 'baton_conductor[category]', 'flexbox_columns' => 'baton_conductor[flexbox_columns]', 'output' => 'baton_conductor[output]', 'post_thumbnails_size' => 'baton_conductor[post_thumbnails_size]', 'excerpt_length' => 'baton_conductor[excerpt_length]'), 'priority' => 10, 'active_callback' => 'baton_conductor_customizer_active_callback'))); }
<?php global $wp_query; // Grab the Baton Conductor instance $baton_conductor = Baton_Conductor_Instance(); // Grab the Baton Conductor instance (settings) $baton_conductor_instance = $baton_conductor->get_baton_conductor_instance(); // Pagination if ($baton_conductor->baton_conductor_query->has_pagination()) { do_action('baton_conductor_pagination_before', $baton_conductor_instance, $wp_query, $baton_conductor); get_template_part('loop', 'navigation'); // Loop - Navigation do_action('baton_conductor_pagination_after', $baton_conductor_instance, $wp_query, $baton_conductor); }
* This function returns a Baton Conductor instance (settings). */ public function get_baton_conductor_instance() { // Create an "instance" $instance = array('title' => $this->baton_conductor_theme_mod['title'], 'posts_per_page' => $this->baton_conductor_theme_mod['posts_per_page'], 'category' => $this->baton_conductor_theme_mod['category'], 'flexbox_columns' => $this->baton_conductor_theme_mod['flexbox_columns'], 'flexbox' => array('columns' => $this->baton_conductor_theme_mod['flexbox_columns']), 'output' => $this->baton_conductor_theme_mod['output'], 'output_elements' => array(), 'content_display_type' => 'excerpt', 'widget_size' => 'flexbox', 'post_thumbnails_size' => $this->baton_conductor_theme_mod['post_thumbnails_size'], 'excerpt_length' => $this->baton_conductor_theme_mod['excerpt_length'] !== 0 ? $this->baton_conductor_theme_mod['excerpt_length'] : $this->defaults['excerpt_length']); // Loop through output elements to populate other data foreach ($instance['output'] as $priority => $output) { // Add this element to the list of output elements (Conductor expects this to exist) $instance['output_elements'][$output['id']] = $priority; // Post content if ($output['id'] === 'post_content') { $instance['content_display_type'] = $output['value']; } } // Query arguments $instance['query_args'] = array('posts_per_page' => $instance['posts_per_page'], 'max_num_posts' => '', 'offset' => 0, 'post__in' => false, 'post__not_in' => false); // Conductor instance filter (second parameter would be widget args in Conductor) return apply_filters('baton_conductor_instance', $instance, array(), $this); } } /** * Create an instance of the Baton_Conductor_Query class. */ function Baton_Conductor_Instance() { return Baton_Conductor::instance(); } // Starts Baton Conductor Baton_Conductor_Instance(); }
/** * This determines if Baton Conductor is enabled. */ function baton_is_baton_conductor_enabled() { // Grab the Baton_Conductor instance $baton_conductor = Baton_Conductor_Instance(); return $baton_conductor->is_baton_conductor_enabled(); }