Ich habe einen benutzerdefinierten Beitragstyp "Portfolio" erstellt, der ungefähr so aussieht:
$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 );
Und ich habe einige andere benutzerdefinierte Felder mit einer Aktion:
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");
}
Obwohl ich dieses mal hatte, kann ich nicht herausfinden, um es zu erhalten, um Indexe gerade für diese Seite zu laden. Im Moment habe ich sie nur mit dem Rest von wp_enqueue_script
so zusammen:
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');
Aber nichts davon wird für mich geladen. Wie kann ich diese Skripte in die Admin-Seiten laden? Besser noch, wie kann ich sie speziell für die Bearbeitungsseiten des benutzerdefinierten Beitragstyps Portfolio laden?
Antworten:
Verwenden Sie diesen Code, um Skripts zu den Bearbeitungsseiten Ihres benutzerdefinierten Post-Typs für das Portfolio hinzuzufügen.
quelle
Ich werde eine bessere Lösung posten, da die akzeptierte Antwort alt ist und nicht die richtigen Haken verwendet .
Zuallererst: Zum Einreihen von Skripten und Stilen in den Admin-Bereich muss
admin_enqueue_scripts
nichts anderes verwendet werden.Zweitens: Vergessen Sie alle globalen Variablen. Verwenden Sie das aktuelle Bildschirmobjekt, um verschiedene Überprüfungen durchzuführen.
Hier ist ein fertiger Code zum Kopieren und Einfügen:
Hinweis: Ersetzen Sie
'portfolio'
den Stift durch den erforderlichen Stifttyp.quelle
Ich habe einige Änderungen an diesem Code vorgenommen, um für mich zu funktionieren:
Ich wechselte
get_stylesheet_directory_uri() . '/admin.js'
zuplugins_url( '/js/admin.js', __FILE__),
- dies wurde benötigt, weil ich ein Plugin für ein Banner entwickelt habe. Dies ist die bessere Lösung, anstatt CPT im Inneren zu erstellenfunctions.php
Ich habe "
true
" hinzugefügt , um den Code im Fußzeilenbereich anstatt im Kopfbereich zu senden - dies verkürzt die Ladezeitquelle