Load a script just to custom post type in admin


История такая - при установке нового плагина отвалился функционал внутри публикации постов и страниц. В консоле выдавало вот такую ошибку "Error: no such method ‘instance’ for sortable widget instance". Гугление подсказало, что тут идет конфликт двух раных по версии библиотек jquery-ui. Выход из проблемы - подгружать библиотеки плагина только на его странице в админке. Плюсом было то, что у этого плагина был свой кастомный пост-тайп - np_coupon_code. В итоге пришлось переписать функцию подключение скриптов и стилей.

old function:

function np_eccw_css_and_js() {	
		wp_register_style('your_css_and_js', plugins_url('datepicker/jquery-ui.css',__FILE__ ));
		wp_enqueue_style('your_css_and_js');
		wp_register_script( 'your_css_and_js', plugins_url('datepicker/jquery-ui.js',__FILE__ ));
		wp_enqueue_script('your_css_and_js');
		wp_register_script( 'mycustomjs', plugins_url('np-coupon-code.js',__FILE__ ));
		wp_enqueue_script('mycustomjs');
}
add_action( 'admin_init','np_eccw_css_and_js');

new:

function np_eccw_css_and_js($hook_suffix) {	
	$cpt = 'np_coupon_code';
    if( in_array($hook_suffix, array('post.php', 'post-new.php') ) ){
        $screen = get_current_screen();
        if( is_object( $screen ) && $cpt == $screen->post_type ){
			wp_register_style('your_css_and_js', plugins_url('datepicker/jquery-ui.css',__FILE__ ));
			wp_enqueue_style('your_css_and_js');
			wp_register_script( 'your_css_and_js', plugins_url('datepicker/jquery-ui.js',__FILE__ ));
			wp_enqueue_script('your_css_and_js');
			wp_register_script( 'mycustomjs', plugins_url('np-coupon-code.js',__FILE__ ));
			wp_enqueue_script('mycustomjs');
        }
    }
}
add_action( 'admin_enqueue_scripts','np_eccw_css_and_js');

source

ПОЛЕЗНО  Простой metabox с чекбоксом (checkbox)