Wenden Sie den Filter “the_content” auf die Live-Vorschau für die Theme-Anpassung an

Ich benutze 'transport' => 'postMessage' , um den Text im Footer-Bereich während der Live-Vorschau der Theme-Anpassung zu aktualisieren.

Mein Problem ist, dass auf meiner Website die entsprechenden Themeneinstellungen ( footer_text ) mit the_content Filtern versehen sind. Gibt es eine Möglichkeit, diesen Filter über JS anzuwenden, oder ich bin fest mit 'transport' => 'refresh' für Situationen wie diese? Vielen Dank.

 (function($){ /** Update the footer text */ wp.customize('footer_text', function(value){ value.bind(function(newval){ $('#footer-left').html(newval); }); }); })(jQuery); 

Solutions Collecting From Web of "Wenden Sie den Filter “the_content” auf die Live-Vorschau für die Theme-Anpassung an"

Ich habe mich wieder darum gekümmert, also habe ich beschlossen, eine Antwort zu posten, weil ich dies tatsächlich mit einem AJAX-Anruf getan habe.

Wie in den Kommentaren zu meiner Frage von @Otto –

Der Punkt von postMessage ist, dass Daten direkt im Browser gesendet werden. Es geht nicht durch den Server, also nein, Sie können keine PHP-Filter anwenden, es sei denn, es wird eine Aktualisierung verwendet. ”

Wenn Sie also das ursprüngliche Beispiel von oben für den Kontext verwenden, können Sie Filter auf Text anwenden, der über die postMessage Methode mithilfe eines AJAX-Aufrufs wie folgt aktualisiert wird:

JS in der Datei theme-customiser.js

 (function($){ /** Update the footer text */ wp.customize('footer_text', function(value){ value.bind(function(newval){ var data = { action: 'filter_using_the_content', text: newval } $.post(MyAjax.ajaxurl, data, function(response){ $('#footer-left').html(response); }); }); }); })(jQuery); 

PHP in Ihrer functions.php Datei –

 add_action('wp_ajax_filter_using_the_content', 'my_filter_using_the_content'); function my_filter_using_the_content(){ echo apply_filters('the_content', $_POST['text']); die(); // Required for a proper result }