web-dev-qa-db-ja.com

プラグインのJSファイルを上書きするためのより良い方法は?

私は私が使っているテーマのいくつかの機能を変更しています。これはすでにPaypalのチェックアウトプロセスを処理するためのプラグイン内に.jsファイルを設定しています。いくつかの要素の名前を変更し、基本的に古いjsファイルを新しいファイルにコピーして変更を加えたので、コードを修正する必要がありました。

それはうまくいって、すべてうまくいっています、しかしWordpressでそれをするよりよい方法があるかどうか私は不思議に思いますか?数行のコードを変更することができるように、それほど修正するのは正しくありません。

ありがとうございます。

2
user102853

上記のコメントを拡張する:

プラグイン/テーマが更新されると、変更を失うので、プラグインやテーマのファイルを直接変更することはお勧めできません。代わりにテーマの場合は子テーマを使用し、プラグインの場合は必須のアクションにフックしてください。

あなたの場合は、プラグインでスクリプトを変更するだけなので、wp_enqueue_scriptwp_enqueue_scriptsにフックしてエンキューした可能性があります(そうなるはずです)。 wp_dequeue_scriptを使用してそのスクリプトをデキューすることができますあなたがしなければならないすべてはオリジナルのプラグインからスクリプトハンドルを見つけることです。その後、変更したスクリプトをエンキューする必要があります。

2
bravokeyl

ここでも同じ問題ですが、 "wp_dequeue_script"では十分ではありませんでした。 WPBakeryプラグインによってロードされた「ウェイポイント」を上書きしたいと思いました。コードに "wp_deregister_script"を追加すると動作します。

define( 'MY_CHILD_URI', get_stylesheet_directory_uri().'/' );

add_action('wp_enqueue_scripts', 'mytheme_scripts');

function mytheme_scripts() {
  wp_dequeue_script( 'waypoints' );
  wp_deregister_script( 'waypoints' );
  wp_enqueue_script( 'waypoints',  MY_CHILD_URI . 'assets/js/jquery.waypoints.min.js', array('jquery'), '', true );
} 
1
zod