web-dev-qa-db-ja.com

トリガー( '変更')が機能していません

カスタマイザに画像をインポートするのにwp.mediaモーダル添付ファイルAPIを使用しています。画像とともに、私はそれらのメタデータ(タイトル、説明、代替テキストなど)もインポートしました。これらはカスタマイザーの入力フィールドの形式です。カスタマイザのスクリーンショットをチェックすることができます ここ

さて、私はユーザーに変更を加えて 'Publish'ボタンを使って添付ファイルの詳細フィールドを保存できるようにしたいです。私はjQuery環境で働いているので、trigger('change')メカニズムを使って 'Publish'ボタンを有効にしようとしていますが、それができません。これはchangeイベントを引き起こすためのコードです -

jQuery('.container input').on( 'input', function() {
        jQuery(this).trigger('change');
    });

ここでは、トリガーイベントを入力フィールドの変更に結び付けています。

PHP側では、タイトルと説明がすでに存在している間に、スライドURLとCTAボタン用に2つのカスタムフィールドを作成する必要がありました。 ここでattachment_fields_to_editでフィルター処理された関数です。明らかに、値を保存するための対応するフィルタも使用されました。

カスタマイザで表示するために、カスタムコントロールを作成しました。 ここで はそのためのコードのレンダリング部分です。 $idは、コンマで区切られたさまざまな添付ファイルのIDを含む文字列です。

添付ファイルの詳細をすべて保存する方法が間違っていることをある程度理解していますが、正確なエラーを特定することはできません。任意の助けをいただければ幸いです。

また、これがカスタマイザで添付ファイルの詳細を保存する方法ではない場合、正しい方向への手助けは大歓迎です。

2
Divjot Singh

カスタムコントロールを使用するには、「公開」ボタンにリンクされる特別な属性を持つフィールドが必要です。

このフィールドを表示したくない場合は、次のような隠しフィールドを生成できます。

class WP_Test_2_Customize_Control extends WP_Customize_Control
{

    public function render_content()
    {

        ?>

            <input
                id="<?php echo htmlspecialchars("_customize-input-{$this->id}");?>"
                type="hidden"

                <?php $this->input_attrs();?>

                <?php if (!isset($this->input_attrs["value"])) {?>
                    value="<?php echo htmlspecialchars($this->value());?>"
                <?php }?>

                <?php $this->link();?>
            />

        <?php

    }


}

次に、他のフィールドの値を変更するときには、JavaScriptを使用してこのフィールドに値を入れてから、この隠しフィールドでchangeイベントをトリガーします。

1
mmm