web-dev-qa-db-ja.com

Javascriptのみを使用してカスタマイザ保存プロセスを開始する

私はWordPressカスタマイズAPIを使用して、ユーザーが自分のWebサイトのコンテンツの一部、基本的には最新の投稿、ページの子などのカスタムブロックを追加/削除することで変更できるフロントページで遊ぶことができるカスタムテーマに取り組んでいます。など黒人の構造が収集され、カスタム入力で入力されています。

保存以外はすべてうまくいきますが、カスタマイザには入力値の保存を妨げる安全性があるようです。それを保存するには、入力を選択してキーを押してJavascriptの「keypress」イベントを手動でトリガーする必要があります。そうでない場合、送信ボタンは無効のままです。

/wp-admin/js/customize-controls.jsを参照して、送信ボタンを有効にします。

wp.customize.trigger('change')

しかし、保存するもののロックが解除されていても、効果はありません。入力値がadmin_ajax.phpに送信されず、データが保存されません。

私のデータを保存するためにJavascript APIへのトリガーをどのように強制することができるかについて何か考えはありますか?私はWP JS APIに関する詳細な文書を見つけることができませんでした。

4
Askelon

JQueryを使用してカスタム入力の値を更新する代わりに、wp.customizeオブジェクトのset()関数を使用します( customize-base.js にあります)。

wp.customize( key, function ( obj ) {
    obj.set( newValue );
} );

ここでkeyは設定、newValueは更新された値です。

また、WP_Customize_Controlを拡張するクラスでは、$this->get_link()を使用してデータ属性data-customize-setting-linkをカスタム入力( class-wp-customize-control.php にあります)に置くようにしてください。

3
Matthew