Я создал пользовательский тип записи "портфолио" с чем-то вроде этого:
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
//'menu_icon' => get_stylesheet_directory_uri() . '/article16.png',
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 4,
'taxonomies' => array('post_tag','category'),
'supports' => array('title','editor','comments','trackbacks','revisions','custom-fields','page-attributes','thumbnail', 'excerpt', 'tags')
);
register_post_type( 'portfolio' , $args );
И у меня есть некоторые другие настраиваемые поля с действием:
add_action("admin_init", "admin_init");
function admin_init(){ // add_meta_box( $id, $title, $callback, $page, $context, $priority );
add_meta_box("media", "Media Type", "media", "portfolio", "side", "high");
add_meta_box("map_meta", "Mapping Info", "map_meta", "portfolio", "normal", "high");
}
Хотя у меня когда-то была эта работа, я не могу понять, как заставить ее загружать скрипты только для этой страницы. Прямо сейчас у меня есть их с остальными, wp_enqueue_script
как это:
function my_init() {
if (!is_admin()) {
....
}
if (is_admin()) {
wp_register_script('Gmaps', 'http://maps.google.com/maps/api/js?sensor=false', false, '3.0', false);
wp_enqueue_script('Gmaps');
wp_register_style('admin_js', get_bloginfo('template_directory') . '/admin.js');
wp_enqueue_script('admin_js');
wp_register_script('Zmaps', get_bloginfo('template_directory') .'/scripts/maps.js', array('Gmaps'), '1.0', true);
wp_enqueue_script('Zmaps');
}
}
add_action('wp_enqueue_scripts', 'my_init');
Но ничего из этого не загружается для меня. Как я могу загрузить эти скрипты на страницы администратора? А еще лучше, как я могу загрузить их специально для страниц редактирования пользовательского типа записей портфолио?
Ответы:
Попробуйте этот код для добавления сценариев на страницах редактирования вашего собственного типа публикаций.
источник
Я выложу лучшее решение, потому что принятый ответ старый и не использует правильные зацепки .
Прежде всего: для постановки скриптов и стилей в админку нужно использовать
admin_enqueue_scripts
и ничего больше.Второе: забудьте о любых глобальных переменах. Использовать текущий экранный объект для выполнения различных проверок.
Вот готовый код вставки копии:
Примечание: замените
'portfolio'
нужным слагом типа post.источник
Я сделал некоторые изменения в этом коде, чтобы работать на меня:
Я изменился
get_stylesheet_directory_uri() . '/admin.js'
наplugins_url( '/js/admin.js', __FILE__),
- это было необходимо, потому что я разработал плагин для баннера, который является лучшим решением вместо создания CPT внутриfunctions.php
Я добавил "
true
", чтобы отправить код в нижний колонтитул вместо заголовка - улучшает время загрузкиисточник