web-dev-qa-db-ja.com

テーマまたはプラグインのどの機能が最初にロードされるか

テーマの機能をオーバーライドするプラグインを作成しました。プラグインの機能が最初にロードされることを知ったが、エラーが発生した

致命的なエラー:89行目の***/plugins/custom-plugin/custom-plugin.phpでwooc_extra_register_fields()(以前は****/themes/****/functions.php:247で宣言されていました)を再宣言できません

何が悪いのかわからない。また!テーマが存在する場合はテーマの機能を上書きする必要があります。では、プラグインを使用して、テーマ関数のラップを上書きする正しい方法はありますか。

2
user2834491
In wp-settings.php, WordPress first checks for any must-use plugins (plugins in the optional mu-plugins folder) and loads those.

次に、マルチサイトインストールを実行している場合は、ネットワークでアクティブ化されているプラ​​グインをチェックしてそれらをロードします。

1
Shiva

あなたの状況では、プラグインをfunction_existsでラップするのが最善です。

if ( ! function_exists( 'wooc_extra_register_fields' ) ) {
    function wooc_extra_register_fields() {
    }
}

これは、テーマの機能をプラグ可能にするためです。その後、子テーマを作成し、その子テーマのfunctions.phpで関数を再宣言できます。

1
Tunji