Support » Plugin: W3 Total Cache » [Plugin: W3 Total Cache] Fragment caching with Twitter/Recent Post widgets?

  • So I was trying to exclude W3TC for 2 of my widgets: “Recent post” and Jetpack’s Twitter widget. First, I tried wrapping my get_sidebar() by using:

    <!-- mfunc -->get_sidebar();<!-- /mfunc -->

    but I didn’t want to exclude the whole sidebar, just some widgets. So I tried excluding Jetpack’s Twitter widget by using

    <!-- mclude -->/wp-content/plugins/jetpack/modules/widgets/twitter-widget.php<!-- /mclude -->

    and “Recent post” widget by using

    <!-- mclude -->/wp-includes/post.php<!-- /mclude -->

    but these pretty much blew up my blog. It threw an error that looks like the aforementioned php files don’t exist at all. Sorry, I can’t give you the exact wording now, since it’d blow up my blog.

    How do you set W3TC to exclude just some widgets?

Viewing 7 replies - 1 through 7 (of 7 total)
  • That would be a real issue. You can’t exclude the file because wordpress doesn’t load the widgets like that. The widgets are dynamic elements that are generated deep in the WordPress system. The whole side bar is the easiest solution. I will give a quick look at the code to see if I can find a way to narrow it down for you though.

    Thank you!

    Okay, so this is a possible solution, but like I said, it is more difficult. Also, this is really a customization that you should have your own coding experience or pay a person with coding experience to do.

    Each widget container in a theme, at least the one’s bothered looking at, like twentyeleven, is initialized in the functions.php file in the theme folder. If you search for “add_action( ‘widgets_init'”, you should find it. At the end of it, there is the name of a function where all the widget slots in your theme are initialized.

    Each widget initialization includes spots where you could (possibly) include some form of cache fragment code.

    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget' => "</aside>",

    Again, due to the dynamic nature of it all, and the fact that I am basing this all on theory, this might not work. I’m not sure if what ends up between ‘before_widget’ and ‘after_widget’ will be a function and I’m pretty sure it isn’t a file.

    I hope you the best, and remember, if what you try doesn’t work right away, re-evaluate doing the whole sidebar.

    Does anyone know how to update a past post? I would have rather updating my last post as I forgot to mention something.

    Oh well. Don’t forget, if you are using a child theme, the functions.php in the child theme doesn’t override the functions.php in the parent theme. It appends it. So the functionality I mentioned most likely is in the the parent theme’s version of the file.

    Thank you very much for looking into this. I dug up the code and follow it; looks like it’s gonna lead to WordPress backend files anyway. So, for the time being, I’m just gonna disable caching for the sidebar.
    <!-- mfunc -->get_sidebar();<!-- /mfunc -->

    FYI, the below syntax is incorrect:

    <!-- mfunc -->get_sidebar();<!-- /mfunc -->

    All it does is displaying the “get_sidebar();” on the frontend. This seems to work:

    <!-- mfunc get_sidebar(); --><!-- /mfunc -->

    I have W3TC Version with WP 3.2.2, php 5.3.x with FastCGI.

    Plugin Author Frederick Townes


    Please check out the latest release.

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘[Plugin: W3 Total Cache] Fragment caching with Twitter/Recent Post widgets?’ is closed to new replies.