it-swarm.com.de

Ist es möglich, mit jquery eine Theme-Customizer-Einstellung von wp.customize zu erhalten?

Ich frage mich, ob es möglich ist, direkt mit der wp.customize-API zu interagieren, um den Wert einer Theme-Customizer-Einstellung zu erhalten. So wie ich es jetzt mache, benutze ich Ajax, um eine Antwort von einer PHP-Funktion zu erhalten. Ich habe anscheinend viele Probleme damit.

Ich weiß, dass Sie mit der API wp.customize mithilfe von jquery eine Bindung zu Steuerelementen des Theme-Customizers herstellen können, obwohl ich mich frage, ob ich über jquery direkt auf eine Einstellung zugreifen kann.

EDIT: Weitere Informationen

Ich weiß, dass Sie mit Steuerelementen direkt über die API wie folgt interagieren können:

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

Ich frage mich, ob es möglich ist, mit derselben API direkt auf Themeneinstellungswerte zuzugreifen, wenn nur jquery verwendet wird.

Wenn nicht, denke ich, wäre es nicht schwer und wäre vorteilhaft, die wp.customize-API (und vielleicht auch alle anderen wp-Funktionen) zu erweitern, um genau das zu tun, was ich manuell mit Ajax und PHP mache Benutzer können jquery nur selbst verwenden, um mit WP-Funktionen zu interagieren und WordPress die Drecksarbeit hinter den Kulissen machen zu lassen. Dies ist möglicherweise eine gute Funktion für eine spätere Version von WP.

2
user1632018

Sie sind sich nicht sicher, was Sie erreichen möchten, können aber mithilfe des Objekts wp.customize einen Wert per Schlüssel abrufen:

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

sorry nein jQuery hier, nur Javascript, und ja, die extra () sind absichtlich.

Bearbeiten: Vollständige Übersicht aller Einstellungen:

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

Edit II:

anderer Ansatz:

a) Suchen Sie alle verfügbaren Einstellungen mit

console.log(wp.customize._value);

b) Man kann also nicht direkt auf den Wert zugreifen

wp.customize._value.blogname

wird nicht funktionieren. Wenn Sie einen Funktionsaufruf erstellen, sollte dies jedoch funktionieren:

wp.customize._value.blogname();

Ich denke nicht, dass es so verwendet werden soll (wenn es überhaupt eine Verwendungsabsicht gibt), aber es funktioniert für mich. Ich habe gerade das wp.customize-Objekt überprüft und nicht nachgeschlagen, wie WP dieses _value-Objekt erstellt. Es ist eine gute Idee zu testen, ob eine Einstellung verfügbar ist und ob es sich um eine Funktion handelt, und schließlich können Sie jQuery verwenden;)

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

oder wie unsere eltern es geschafft hätten;)

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