• Динамический блок в WP Super Cache?

    @bestrer Автор вопроса
    Roman:
    из dynamic-cache-test.php, DYNAMIC_OUTPUT_BUFFER_TAG установлен BANNER

    define( 'DYNAMIC_OUTPUT_BUFFER_TAG', 'BANNER' ); // Change this to a secret placeholder tag
    
    if ( DYNAMIC_OUTPUT_BUFFER_TAG != '' ) {
    	function dynamic_output_buffer_test( &$cachedata = 0 ) {
    		if ( defined( 'DYNAMIC_OB_TEXT' ) )
    			return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata );
    
    		ob_start();
    		// call the sidebar function, do something dynamic
    		echo "<p>This is a test. The current time on the server is: " . date( 'H:i:s' ) . "</p>";
    		$text = ob_get_contents();
    		ob_end_clean();
    
    		if ( $cachedata === 0 ) { // called directly from the theme so store the output
    			define( 'DYNAMIC_OB_TEXT', $text );
    		} else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php
    			return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata );
    
    	}
    	add_cacheaction( 'wpsc_cachedata', 'dynamic_output_buffer_test' );
    
    	function dynamic_output_buffer_init() {
    		add_action( 'wp_footer', 'dynamic_output_buffer_test' );
    	}
    	add_cacheaction( 'add_cacheaction', 'dynamic_output_buffer_init' );
    
    	function dynamic_output_buffer_test_safety( $safety ) {
    		if ( defined( 'DYNAMIC_OB_TEXT' ) ) // this is set when you call dynamic_output_buffer_test() from the theme
    			return 1; // ready to replace tag with dynamic content.
    		else
    			return 0; // tag cannot be replaced.
    	}
    	add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_output_buffer_test_safety' );
    }


    В single.php

    if ( function_exists( 'dynamic_output_buffer_test' ) )
        dynamic_output_buffer_test();
    ?>BANNER<?php


    При включенном кешировании время обновляется. Но в кеше хранится страница со словом BANNER. И если почистить кеш, выдает кешированную версию, со словом BANNER.
  • Динамический блок в WP Super Cache?

    @bestrer Автор вопроса
    Roman: продолжает кешировать страницу вместе с динамическим блоком. нужно страницу кешировать, а динамический блок нет.