如何在WP定制器的刷新上添加DO_ACTION?

时间:2017-05-19 作者:Bob

我想在刷新WordPress自定义程序预览时清除插件的缓存,因为我只能在刷新该插件的缓存时看到我所做的更改。

这是因为主题mod值存储在css文件中,需要刷新缓存才能看到更改。由于这些css文件连接到主题mod值,因此我需要在刷新customizer预览时刷新插件的缓存。

我在PHP方面走了这么远:

function px_clear_bb_cache() {
FLBuilderModel::delete_asset_cache_for_all_posts();
}
do_action( \'customize_save\', \'px_clear_bb_cache\' );
保存后,现在将刷新缓存and closing :(自定义程序。

我想我需要用JS+Ajax连接到定制器中,但我不知道如何做到这一点。

如果有人能帮我,那就太好了。

基本上是PHP命令“FLBuilderModel::delete\\u asset\\u cache\\u for\\u all\\u posts();”需要在每次刷新自定义程序预览时激发。

1 个回复
SO网友:Bob

获得解决方案:

创建一个PHP文件“purge bb cache.PHP”

  • 在函数中创建一个JS脚本,如下所示。php清除bb缓存。php

    <?php 
      FLBuilderModel::delete_asset_cache_for_all_posts();
     ?>
    
    JS脚本:

    // Add JS to customizer
    function print_customizer_js() {     
    ?>
    <script>
    
    // Purge BB Cache On Save Customizer
    jQuery(document).ready(function(){
    jQuery("input#save").click(function(){
    //var ajaxurl = "<?php echo ( get_stylesheet_directory() . \'/wp-content/themes/bb-theme-child/script.php\' ); ?>";
    
    jQuery.ajax({
    type: \'POST\',
    url: \'/wp-content/themes/bb-theme-child/assets/purge-bb-cache.php\',
    success: function(data) {
    console.log("Purged BB Cache");
    }
    });
    });
    });
    </script>
    <?php
    }
    add_action(\'customize_controls_print_scripts\', \'print_customizer_js\');
    

  • 结束