it-swarm.com.ru

Можно ли получить настройки настройщика темы из wp.customize с помощью jquery?

Мне интересно, можно ли напрямую взаимодействовать с API wp.customize, чтобы получить значение настройки настройщика темы. То, как я делаю это сейчас, использует ajax для получения ответа от функции php. Кажется, у меня много проблем с этим.

Я знаю, что вы можете привязать элементы управления настройщиком темы с помощью jquery к API wp.customize, хотя мне интересно, могу ли я получить прямой доступ к настройке из jquery?

Правка: Больше информации

Я знаю, что вы можете взаимодействовать с элементами управления напрямую через API следующим образом:

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

Мне интересно, возможно ли использовать тот же API для прямого доступа к значениям настроек темы, используя только jquery?

Если нет, то я думаю, что это не будет сложно и было бы полезно расширить API wp.customize (и, возможно, все остальные функции wp) для того, чтобы делать именно то, что я делаю вручную с ajax и php, так что так будет пользователи могут использовать jquery только для взаимодействия с wp-функциями, а WordPress выполняет грязную работу за кулисами. Это может быть хорошей функцией для более поздней версии WP.

2
user1632018

Не уверен, что вы пытаетесь достичь, но вы можете получить значение по ключу, используя объект wp.customize:

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

извините, нет jQuery здесь, просто javascript, и да, extra () являются преднамеренными.

Правка: Полный обзор всех настроек:

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

Правка II:

другой подход:

а) поиск всех доступных настроек с помощью

console.log(wp.customize._value);

б) нельзя получить доступ к значению напрямую, поэтому

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