Wie kann man Skripte für einen bestimmten benutzerdefinierten Post-Typ abmelden?

Ich benutze die functions.php, um alle Skripte und CSS für meine Website zu registrieren und in die Warteschlange zu stellen.

Ich habe einen benutzerdefinierten Post-Typ, den ich auswählen möchte, und wähle aus, welche Skripte in die single-post-type.php-Seite geladen werden. Ich öffne diese Seite in einem Leuchtkasten, damit ich nicht alle Javascript- und CSS-Dateien in die Seite laden möchte. Es könnte ziemlich umständlich werden. Ich versuche zu

Ist das möglich und wie könnte ich das machen?

Ich habe versucht, ein paar der Skripte mit diesem Code zu umhüllen und es schien nichts zu tun:

if ( is_singular( 'projects' ) ) { wp_deregister_script('html5shiv'); } 

Ich gehe zu meiner Vorlage und sehe immer noch, dass html5shiv geladen wird. Was mache ich hier falsch?

Solutions Collecting From Web of "Wie kann man Skripte für einen bestimmten benutzerdefinierten Post-Typ abmelden?"

Meiner Meinung nach, wenn Sie derjenige sind, der die Skripte und Stile registriert und eingezwängt hat, fügen Sie sie bedingt in die Warteschlange ein. Ich sehe keine Verwendung, Skripte oder Stile in die Warteschlange zu stellen, nur um sie später aus der Warteschlange zu nehmen.

Wenn Sie die Ausfahrtsroute nehmen möchten, müssen Sie

  • Entfernen Sie das Skript oder den Stil aus der Warteschlange, nicht die Registrierung

  • Stellen Sie sicher, dass Ihre Priorität korrekt ist, dh Sie müssen das Skript oder den Stil aus der Warteschlange entfernen, nachdem es ordnungsgemäß geladen wurde. Dies zu tun, bevor das Skript oder der Stil korrekt geladen ist, funktioniert nicht

BEISPIEL 1

 add_action( 'wp_enqueue_scripts', 'enqueue_my_scripts' ); function enqueue_my_scripts() { wp_register_script( 'my_script', /* Add the rest of your details*/ ); if ( !is_singular( 'my_post_type' ) ) // If we are not on a single post page from my my_post_type, enqueue the script wp_enqueue_script( 'my_script' ); } 

Beispiel 2

 add_action( 'wp_enqueue_scripts', 'dequeue_my_scripts', 999 ); // Notice the priority function dequeue_my_scripts() { if ( is_singular( 'my_post_type' ) ) // If we are on a single post page from my my_post_type, dequeue the script wp_dequeue_script( 'my_script' ); }