我再次关注这一点,所以我决定发布一个答案,因为我实际上使用了AJAX调用。
正如在对我的问题的评论中所指出的@Otto -
postMessage的意义在于它直接在浏览器中发送数据。它不通过服务器,所以不,除非它使用刷新,否则不能对其应用PHP过滤器。“”
因此,使用上面的原始示例作为上下文,您可以对通过postMessage
方法使用AJAX调用,如下所示-
JS在您的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在您的
functions.php 文件-
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
}