スクリプト(「enterprise-respond-menu」)をデキューしたいのですが、テンプレートに含まれている機能ではできません。何か問題がありますか?
これはfunctions.phpのエンキューです。
//* Enqueue Scripts
add_action( 'wp_enqueue_scripts', 'enterprise_load_scripts' );
function enterprise_load_scripts() {
wp_enqueue_script( 'enterprise-responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_style( 'dashicons' );
wp_enqueue_style( 'google-fonts', '//fonts.googleapis.com/css?family=Lato:300,700,300italic|Titillium+Web:600', array(), CHILD_THEME_VERSION );
}'
これが私のテンプレートのデキューコードです -
//Remove Mobile Header
function project_dequeue_unnecessary_scripts() {
wp_dequeue_script( 'enterprise-responsive-menu' );
wp_deregister_script( 'enterprise-responsive-menu' );
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );
project_dequeue_unnecessary_scripts()
関数をfunctions.php
ファイルに移動して、適切なテンプレートがロードされているかどうかを判断するための条件文を追加します。例えば。:
// Remove Mobile Header
function project_dequeue_unnecessary_scripts() {
if ( is_page_template( 'name-of-template.php' ) ) {
wp_dequeue_script( 'enterprise-responsive-menu' );
wp_deregister_script( 'enterprise-responsive-menu' );
}
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );
あなたの関数はテンプレートファイルのget_header()
への呼び出しの後のどこかに置かれているので機能していないのではないかと思います。これはスクリプトをデキューするには遅すぎるということです。テンプレートファイルで関数を宣言するのはとにかく良い習慣ではありませんので、あなたのfunctions.php
ファイルか他のインクルードを使ってください。
add_action( 'wp_enqueue_scripts', 'enterprise_load_scripts' );
function enterprise_load_scripts(){
if ( !is_page_template( 'name-of-template.php' ) ) {
wp_enqueue_script( 'enterprise-responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
}
wp_enqueue_style( 'dashicons' );
wp_enqueue_style( 'google-fonts', '//fonts.googleapis.com/css?family=Lato:300,700,300italic|Titillium+Web:600', array(), CHILD_THEME_VERSION );
}
デキューする代わりに、特定のスクリプトを条件に設定して、必要のないテンプレート以外のテンプレートを含むページにのみロードされるようにした場合はどうなりますか。.