【问题标题】:Disabled caching for a WordPress shortcode?禁用 WordPress 短代码的缓存?
【发布时间】:2018-04-27 16:09:52
【问题描述】:

前言:我开发了一个插件,所以编辑主题文件是不可能的。

我的简码函数:

/*** [leaderboard] shortcode with tournament_id input value ***/
function leaderboard_shortcode( $tournamentid ) {
    ob_start();
    include_once dirname( __FILE__ ) . '/leaderboard.php';
    $output = ob_get_clean();
    return $output;
}
add_shortcode( 'golf-deputy-leaderboard', 'leaderboard_shortcode' );

我尝试添加到相关页面,但是,如果将短代码添加到不受插件控制的页面 - 例如主页 - ,短代码缓存。

我想我的问题是:我有什么选项可以不缓存短代码的内容,即使它所在的页面启用了缓存。

我一直在绞尽脑汁,internetz,WordPress Codex……都无济于事。我对任何和所有建议持开放态度。帮助我 Stackoverflow,你是我唯一的希望。

【问题讨论】:

  • 不禁用这些页面的缓存?
  • 就是这样。
  • 如果您仍然想保留缓存的其余内容,那么我能想到的唯一选择是使用 javascript 动态加载插件内容客户端并在页面加载时插入/更新它
  • 我不反对告诉 WP 忽略任何包含短代码的页面的缓存...
  • 您当前的缓存设置是什么?

标签: php wordpress caching plugins shortcode


【解决方案1】:

缓存功能在所有可能的文件管理器和操作之前开始工作,并且由于短代码在 the_content 过滤器中运行,因此不可能只缓存一个短代码。我的意思是,当 WP 返回缓存数据时,它返回静态 HTML 数据,在这种情况下没有任何主题和插件的 PHP 运行。

您需要添加该页面(其内容中有一个短代码)以排除您的插件列表。所有流行的缓存插件在其设置中都有这样的排除字段。

或者另一种方法是构建自定义缓存解决方案,它只是忽略缓存然后 the_content 包含任何短代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2012-08-08
    • 2013-11-24
    • 2018-03-11
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多