Utworzyłem „portfolio” niestandardowego typu postów z czymś takim:
$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 );
Mam też inne niestandardowe pola z działaniem:
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");
}
Chociaż kiedyś miałem to działające, nie mogę wymyślić, aby załadować skrypty tylko dla tej strony. W tej chwili mam je tylko z resztą wp_enqueue_script
tego:
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');
Ale nic z tego nie ładuje się dla mnie. Jak mogę załadować te skrypty na strony administracyjne? Jeszcze lepiej, jak mogę je załadować specjalnie dla stron edycji niestandardowego typu postu w portfolio?
Odpowiedzi:
Wypróbuj ten kod, aby dodać skrypty do stron edycji niestandardowego typu postu w portfolio.
źródło
Zamieszczę lepsze rozwiązanie, ponieważ zaakceptowana odpowiedź jest stara i nie używa odpowiednich haczyków .
Po pierwsze: do kolejkowania skryptów i stylów w obszarze administracyjnym należy użyć
admin_enqueue_scripts
i nic więcej.Po drugie: zapomnij o wszelkich globalnych zmianach. Użyj bieżącego obiektu ekranu, aby wykonać różne kontrole.
Oto gotowy kod wklejania:
Uwaga: Zamień
'portfolio'
na potrzebny ślimak typu post.źródło
Wprowadziłem kilka zmian w tym kodzie, aby działały dla mnie:
Zmieniłem
get_stylesheet_directory_uri() . '/admin.js'
naplugins_url( '/js/admin.js', __FILE__),
- było to potrzebne, ponieważ opracowałem wtyczkę do banera, która jest lepszym rozwiązaniem zamiast tworzenia wewnątrz CPTfunctions.php
Dodałem „
true
”, aby wysłać kod w obszarze stopki zamiast głowy - skraca czas ładowaniaźródło