web-dev-qa-db-ja.com

WpAlchemy - _global_headは3回出力されています

今日繰り返しフィールド機能(have_fields_and_multi)を利用しようとしている間、私は最新のWpAlchemy(1.6.1)と最新のWordpress(4.6.1)で、MetaBox.phpからのインラインJavaScriptブロックが3回出力されることを発見しました。管理者ページで。 3セットのonclickイベントが含まれているため、これは機能を壊します。

私は同じ結果で2つのローカルサイトでこれを試しました。

私はevent.stopImmediatePropogationを介して一時的な修正としてそれを回避しようとしていますが、もっとしっかりしたものが欲しいと思います。 (私はこれを問題として https://github.com/farinspace/wpalchemy/issues/111 にも追加しました)

私は一人でこの問題を経験しているのですか、そして誰もがそれを解決する方法について何か考えを持っていますか?

1
Jonny Perl

手がかりはここの元のスクリプトにありました - MetaBox.phpの460行目には「// todo:最初の実行時には他のインスタンスが再実行されないように定数を定義します...」というコメントがあります。以下のコードはこの問題を解決しました。

if(!defined('HEAD_CALLED')):
  add_action( 'admin_head', array( $this, '_global_head' ) );
  define('HEAD_CALLED', true);            
endif;
3
Jonny Perl