É possível obter uma configuração de customizador de tema em wp.customize usando jquery?

2

Eu estou querendo saber se é possível interagir diretamente com a API wp.customize para obter um valor de uma configuração de customizador de tema. O jeito que estou fazendo agora é usar ajax para obter uma resposta de uma função php. Parece que estou tendo muitos problemas com isso.

Eu sei que você pode ligar-se aos controles do customizador de tema usando jquery com a API wp.customize, embora eu esteja me perguntando se posso acessar diretamente uma configuração do jquery?

EDIT: Mais informações

Eu sei que você pode interagir com os controles diretamente por meio da API assim:

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

Eu estou querendo saber se é possível usar a mesma API para acessar diretamente os valores de configuração do tema, usando somente o jquery?

Se não, eu acho que não seria difícil e seria benéfico estender a API wp.customize (e talvez todas as outras funções wp para esse assunto) para fazer exatamente o que eu estou fazendo manualmente com ajax e php, então este Dessa forma, os usuários só poderiam usar o jquery para interagir com funções wp e fazer com que o wordpress fizesse o trabalho sujo nos bastidores. Isso pode ser um bom recurso para uma versão posterior do WP.

    
por user1632018 23.12.2013 / 06:54

1 resposta

9

Não tenho certeza do que você tenta realizar, mas você pode obter um valor por chave usando o objeto wp.customize:

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

desculpe não jQuery aqui, apenas javascript, e sim, o extra () é intencional.

Editar: visão geral completa de todas as configurações:

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

Editar II:

abordagem diferente:

a) pesquise todas as configurações disponíveis usando

console.log(wp.customize._value);

b) não se pode acessar o valor diretamente, então

wp.customize._value.blogname

não funciona. Mas, se você fizer uma chamada de função, deve funcionar:

wp.customize._value.blogname();

Eu não acho que é para ser usado dessa maneira (se houver intenção de uso), mas funciona para mim. Acabei de inspecionar o objeto wp.customize e não procurei como o WP constrói esse objeto _value. É uma boa idéia testar se uma configuração está disponível e se é uma função e, finalmente, você pode usar o jQuery;)

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

ou como nossos pais teriam feito isso;)

if(typeof wp.customize._value.blogname === 'function')
    //do stuff
{
    
por ungestaltbar 28.12.2013 / 23:19