WordPress用户角色按钮正在缓存

时间:2017-08-10 作者:Anand Rk

我在我的网站上为不同的用户设置了不同的按钮,我使用了下面的代码来创建这些按钮。

<?php 
    global $user_login, $current_user;
    get_currentuserinfo();
    $user_info = get_userdata($current_user->ID);
    $roles = array (
        \'administrator\',
        \'daily\',
        \'monthly\',
        \'unlimited\',

    );
    $roles_expired = array (
        \'expired\',
    );
if (is_user_logged_in() && array_intersect( $roles, $user_info->roles)) {
echo Button 1; 
} else if (is_user_logged_in() && array_intersect( $roles_expired, $user_info->roles)) {

    echo \'Button2\';
}
else {

  echo \'Button3\';
}
?>  
代码对我很有用,但当我在网站中启用缓存(使用w3 total cache)时,按钮也会为不同的用户角色缓存?

有没有更好的方法来实现这一点?请帮帮我

感谢并再次感谢Sanand RK

1 个回复
SO网友:Chris Cox

如果该页面位于特定页面上,则可以在“性能>页面缓存>高级”下将该页面从缓存中排除。

如果它在每个页面上,则必须启用片段缓存。将方法设置为Disk:Basic,并在性能>页面缓存>高级中启用延迟初始化。在wp-config.php:

define( \'W3TC_DYNAMIC_SECURITY\', md5( rand( 0, 999999 ) ) );
然后将不希望缓存的任何节打包如下:

<!--mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->

<?php // your dynamic button code here ?>

<!--/mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->

结束

相关推荐

Batcache消息不再位于页面源中

我已放置advanced-cache.php 和object-cache.php 在里面wp-contents 并已更新wp-config.php 具有define(\'WP_CACHE\', true);, 但我没有看到页面源中的消息告诉我页面是从缓存提供的。我有WordPress 3.8.1,APC Object Cache Backend 2.0.6, 和Batcache 1.2. 从前,我会在页面源代码中看到消息,但现在不再看到了。这涉及到几个WordPress安装。我确实看到插件显示在WordP

WordPress用户角色按钮正在缓存 - 小码农CODE - 行之有效找到问题解决它

WordPress用户角色按钮正在缓存

时间:2017-08-10 作者:Anand Rk

我在我的网站上为不同的用户设置了不同的按钮,我使用了下面的代码来创建这些按钮。

<?php 
    global $user_login, $current_user;
    get_currentuserinfo();
    $user_info = get_userdata($current_user->ID);
    $roles = array (
        \'administrator\',
        \'daily\',
        \'monthly\',
        \'unlimited\',

    );
    $roles_expired = array (
        \'expired\',
    );
if (is_user_logged_in() && array_intersect( $roles, $user_info->roles)) {
echo Button 1; 
} else if (is_user_logged_in() && array_intersect( $roles_expired, $user_info->roles)) {

    echo \'Button2\';
}
else {

  echo \'Button3\';
}
?>  
代码对我很有用,但当我在网站中启用缓存(使用w3 total cache)时,按钮也会为不同的用户角色缓存?

有没有更好的方法来实现这一点?请帮帮我

感谢并再次感谢Sanand RK

1 个回复
SO网友:Chris Cox

如果该页面位于特定页面上,则可以在“性能>页面缓存>高级”下将该页面从缓存中排除。

如果它在每个页面上,则必须启用片段缓存。将方法设置为Disk:Basic,并在性能>页面缓存>高级中启用延迟初始化。在wp-config.php:

define( \'W3TC_DYNAMIC_SECURITY\', md5( rand( 0, 999999 ) ) );
然后将不希望缓存的任何节打包如下:

<!--mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->

<?php // your dynamic button code here ?>

<!--/mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->

相关推荐

(Xdebug Profiler)为什么一个页面会生成两个cachegrind文件?

当我启用时xdebug profiler, 在admin中打开一个页面,它会生成两个名称几乎相同的cachegrind文件cachegrind.out.1498219635_761795.crown__minilio_wp-admin_edit_php cachegrind.out.1498219639_141988.crown__minilio_wp-admin_edit_php 输出名称定义为xdebug.profiler_output_name = \"cachegrind.out