Wie kann ich Skripte auf benutzerdefinierten Seiten zum Hinzufügen / Bearbeiten von Posts einreihen?

23

Ich versuche, ein JS-Skript nur in die Warteschlange zu stellen, wenn jemand einen benutzerdefinierten Beitragstyp hinzufügt oder bearbeitet, den ich erstellt habe und der "Rezepte" heißt. Derzeit funktioniert das Skript in Ordnung, wenn ich das mache:

if (is_admin()){
    wp_enqueue_script( 'my-script' );
}

Aber dies lädt es in jeder Admin-Seite, ich nehme an, ich muss es mit einer Funktion verknüpfen, aber ich habe keine Ahnung, was es sein würde.

Danke im Voraus!

Javier Villanueva
quelle
Für die zukünftige Verwendung wurde eine ähnliche Frage meines Erachtens
Frits

Antworten:

43

Sie können es so machen (setzen Sie ein functions.php):

function add_admin_scripts( $hook ) {

    global $post;

    if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
        if ( 'recipes' === $post->post_type ) {     
            wp_enqueue_script(  'myscript', get_stylesheet_directory_uri().'/js/myscript.js' );
        }
    }
}
add_action( 'admin_enqueue_scripts', 'add_admin_scripts', 10, 1 );
mike23
quelle
Kann ich mit dieser Funktion auch Stile einreihen?
Sisir
1
@Sisir Benutze den "admin_print_styles-{$page}"Haken. $pagekann den vollständigen add_(sub)menu_page()Code enthalten und verwendet werden, um die Seite bei der Verwendung anzuvisieren @see wp_enqueue_style().
Kaiser
Eine aktuellere Art und Weise, dies zu tun: wordpress.stackexchange.com/a/34897/93169 (auch ein wenig einfacher dank Änderungen der Funktionalität in WordPress ...)
Frits
-2

Dafür gibt es einen Haken und der ist kinderleicht zu bedienen. In diesem Tutorial finden Sie ein Implementierungsbeispiel .

Bearbeiten

Justin hat seine Tutorials von DevPress auf seine persönliche Seite verschoben. Hier ist der aktualisierte Link für das Tutorial .

Chip Bennett
quelle
Die aufgeführte Seite ist weg. Hier ist ein Spiegel / Archiv auf dem Wayback-Rechner .
Robert K
Dank dafür. Ich habe meine Antwort mit einem aktuellen Link aktualisiert.
Chip Bennett
3
Warum nicht die Lösung hier posten und das Tutorial als Quelle verlinken ...
Christine Cooper
-3

Rootstheme (das auf Twitter Bootstrap basiert) bietet eine sehr elegante Methode zum Laden von Skripten in Abhängigkeit vom Seiten- / Beitragstyp, wie in der Funktion " roots_scripts" zu sehen ist, die hier auf github zu sehen ist .

Grundsätzlich müssen Sie alle Ihre Skripte und Stile registrieren. Anschließend verfügen Sie über bedingte Anweisungen, die Ihre wp_enqueue_script- oder wp_enqueue_style- Anweisungen umbrechen .

FLOQ Design
quelle