function admin_enqueue_scripts() { // js if (meta_box_find_field_type('date', $this->fields)) { wp_enqueue_script('jquery-ui-datepicker', array('jquery', 'jquery-ui-core')); } if (meta_box_find_field_type('slider', $this->fields)) { wp_enqueue_script('jquery-ui-slider', array('jquery', 'jquery-ui-core')); } if (meta_box_find_field_type('image', $this->fields)) { wp_enqueue_script('meta_box', get_template_directory_uri() . '/metaboxes/js/scripts.js', array('jquery')); } // css wp_register_style('jqueryui', get_template_directory_uri() . '/metaboxes/css/jqueryui.css'); $deps = meta_box_find_field_type('date', $this->fields) || meta_box_find_field_type('slider', $this->fields) ? array('jqueryui') : null; wp_enqueue_style('meta_box', get_template_directory_uri() . '/metaboxes/css/meta_box.css', $deps); }
/** * adds scripts to the head for special fields with extra js requirements */ function meta_box_head() { if (in_array(get_post_type(), $this->page) && (meta_box_find_field_type('date', $this->fields) || meta_box_find_field_type('slider', $this->fields))) { echo '<script type="text/javascript"> jQuery(function( $) {'; foreach ($this->fields as $field) { switch ($field['type']) { // date case 'date': echo '$("#' . $field['id'] . '").datepicker({ dateFormat: \'yy-mm-dd\' });'; break; // slider // slider case 'slider': $meta_value = get_post_meta(get_the_ID(), $field['id'], true); $value = !empty($meta_value) ? $meta_value : $field['min']; echo ' $( "#' . $field['id'] . '-slider" ).slider({ value: ' . $value . ', min: ' . $field['min'] . ', max: ' . $field['max'] . ', step: ' . $field['step'] . ', slide: function( event, ui ) { $( "#' . $field['id'] . '" ).val( ui.value ); } });'; break; } } echo '}); </script>'; } }
/** * adds scripts to the head for special fields with extra js requirements */ function admin_head() { if ( in_array( get_post_type(), $this->page ) && ( meta_box_find_field_type( 'date', $this->fields ) || meta_box_find_field_type( 'slider', $this->fields ) || meta_box_find_field_type( 'icons', $this->fields ) ) ) { echo '<script type="text/javascript"> jQuery(function( $) {'; foreach ( $this->fields as $field ) { switch( $field['type'] ) { // date case 'date' : echo '$("#' . $field['id'] . '").datepicker({ dateFormat: \'yy-mm-dd\' });'; break; // icons case 'icons' : echo '$(".meta_box_items.icons li i").on("click", function(e){ //e.stopPropagation(); $(this).closest(\'ul\').find(\'i\').removeClass(\'selected\'); $(this).addClass(\'selected\'); });'; break; // slider case 'slider' : $value = get_post_meta( get_the_ID(), $field['id'], true ); if ( $value == '' ) $value = $field['min']; echo ' $( "#' . $field['id'] . '-slider" ).slider({ value: ' . $value . ', min: ' . $field['min'] . ', max: ' . $field['max'] . ', step: ' . $field['step'] . ', slide: function( event, ui ) { $( "#' . $field['id'] . '" ).val( ui.value ); } });'; break; } } echo '}); </script>'; } }