在每个URL的末尾追加一个查询字符串

时间:2022-02-27 作者:228

我正试图在每个URL的末尾附加一个查询字符串,以供登录用户使用,以达到破坏缓存的目的。这是我的代码,但它似乎不起作用。有什么想法吗?

function add_admin_qs($url){
    if ( is_user_logged_in() ) {
        return add_query_arg(\'nocfcache\', \'true\', $url);
    }
}
    
if ( is_user_logged_in() ) {
    add_filter( \'home_url\', \'add_admin_qs\', 11, 1);
    add_filter( \'post_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'page_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'post_type_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'category_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'tag_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'author_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'day_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'month_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'year_link\', \'add_admin_qs\', 11, 1);
}

2 个回复
SO网友:228

问题是我使用了错误类型的引号。你在我的第一篇帖子中看不到它,因为很明显,当我粘贴代码时,它们被更改了。

enter image description here

SO网友:Sébastien Serre

function add_admin_qs($url){
    if ( is_user_logged_in() ) {
        return add_query_arg(\'nocfcache\', \'true\', $url);
    }
}

add_action( \'plugins_loaded\', function(){   
if ( is_user_logged_in() ) {
    add_filter( \'home_url\', \'add_admin_qs\', 11, 1);
    add_filter( \'post_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'page_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'post_type_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'category_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'tag_link\', \'add_admin_qs\', 10, 1);
    add_filter( \'author_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'day_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'month_link\', \'add_admin_qs\', 11, 1);
    add_filter( \'year_link\', \'add_admin_qs\', 11, 1);
}
});
我认为主要的问题是您在WP加载时加载代码,可能是在您真正登录WP之前。

相关推荐

如何针对多服务器环境进行缓存?Memcached、Redis或其他?

我正在研究加速多服务器wordpress安装的方法。在过去,有像batcache这样的插件使用memcache来存储对象。该插件已经过时,希望在2018年了解Wordpress在内存中存储对象的最佳方式。我的目标是加速我们的wordpress站点,并在缓存对象(限制DB交互)时卸载服务器,如果可能的话,不使用页面缓存(内存解决方案)。