どのように私はプラグインからすべてのJSファイルを無効にし、私が結合し、圧縮した単一のJSファイルをロードすることができますか?
方法はありますか?
最初の答えと似ていますが、これでうまくいくはずです。
function remove_all_scripts() {
foreach( wp_scripts()->registered as $script ) {
wp_dequeue_script( $script );
wp_deregister_script( $script );
}
}
add_action('wp_enqueue_scripts', 'remove_all_scripts', PHP_INT_MAX);
asset Queue Manager のようなプラグインをインストールして、アクティブなすべてのスタイルシートとJavaScriptファイルを追跡することができます(整形式です。アセットがなくてもページがどのように見えるかをライブプレビューできます)。壊れたかどうか)、そしてあなたのテーマのfunctions.php
ファイルに次のようなコードを入れてください。
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
$deregistered_scripts=array('wc-add-to-cart',
'woocommerce',
'storefront-skip-link-focus-fix',
'wc-add-to-cart-variation',
'wc-cart-fragments',
'storefront-navigation',
'wc-single-product');
foreach ($deregistered_scripts as $key => $script) {
wp_deregister_script( $script );
}
}
(もちろん、$deregistered_scripts
配列を、使用しないものだけに置き換えたいと思うかもしれません)
ブログが開発モードになっていて、その後にエラーメッセージが表示される場合は、プラグインによって問題が発生している可能性があります。 /wp-includes/class.wp-scripts.php
の250行目に@を追加してみてください。
public function set_group( $handle, $recursion, $group = false ) {
if ( @$this->registered[$handle]->args === 1 ) //"@" added
$grp = 1;
else
$grp = (int) $this->get_data( $handle, 'group' );
if ( false !== $group && $grp > $group )
$grp = $group;
return parent::set_group( $handle, $recursion, $grp );
}
Edit:登録解除スクリプトのコードは、Justin Tadlockによる このブログ記事から追加されました
あなたはこのようなことをやろうとすることができます:
add_action( 'wp_enqueue_scripts', 'wpse8170_disable_all_scripts', 9999 );
function wpse8170_disable_all_scripts() {
global $wp_scripts, $wp_styles;
$wp_styles = new WP_Styles(); // reset all styles
$wp_scripts = new WP_Scripts(); // reset all scripts
}
しかし、これはあなたがやりたいことをするための悪い習慣であり、将来的に 予期しない 結果につながる可能性があることに注意してください。