web-dev-qa-db-ja.com

Jqueryを使ってwp.customizeからテーマカスタマイザ設定を取得することは可能ですか?

テーマカスタマイザ設定の値を取得するためにwp.customize APIと直接相互運用することが可能かどうか私は疑問に思います。私が今やっている方法は、php関数から応答を得るためにajaxを使うことです。私はそれについて多くの問題を抱えているようです。

私はあなたが私が直接jqueryから設定にアクセスできるかどうか疑問に思っていますが、私はあなたがwp.customize apiでjqueryを使用してテーマカスタマイザコントロールにバインドできることを知っていますか?

編集:さらなる情報

私はあなたがこのようにAPIを通して直接コントロールと対話できることを知っています:

/** Site title and description. */
wp.customize( 'blogname', function( value ) {
    value.bind( function( to ) {
        $( '.site-title a' ).html( to );
    } );
} );

私はそれがjqueryだけを使用して、直接テーマ設定値にアクセスするために同じAPIを使用することが可能であるかどうか疑問に思いますか?

そうでなければ、私がajaxとphpを使って手動で行っていることを正確に実行するためにwp.customize api(そしておそらく他のすべてのwp関数)を拡張するのは難しいことではなく、有益であると思いますユーザーが自分自身でjperyを使ってwp関数と対話し、wordpressに裏で汚い仕事をさせることが可能です。これはWPのそれ以降のバージョンのためのよい機能であるかもしれません。

2
user1632018

何を達成しようとしているのかわかりませんが、wp.customizeオブジェクトを使用してキーで値を取得できます。

wp.customize.value('show_on_front')();
wp.customize.value('blogname')();
....

申し訳ありませんが、ここではjavascriptを使用してください。はい、extra()は意図的なものです。

編集:すべての設定の概要

wp.customize._value;
console.log(wp.customize._value);

編集II:

異なるアプローチ

a)を使用して、利用可能なすべての設定を検索します。

console.log(wp.customize._value);

b)値に直接アクセスできない

wp.customize._value.blogname

動作しません。しかし、あなたがそれを関数呼び出しにしたなら、それはうまくいくはずです:

wp.customize._value.blogname();

私はそれがこのように使用されることを意図しているとは思わない(使用の意図が全くある場合)が、それは私のために働く。 wp.​​customizeオブジェクトを調べたところ、WPがこの_valueオブジェクトを構成する方法を調べませんでした。設定が利用可能かどうか、それが関数かどうかをテストすることをお勧めします。そして最後にjQueryを使用できます。

if ( jQuery.isFunction(wp.customize._value.blogname) ) {
// do stuff
}

または私たちの両親がそれを作ったであろうように;)

if(typeof wp.customize._value.blogname === 'function')
    //do stuff
{
9
ungestaltbar