如何在WP管理栏中创建一个清除所有缓存(W3总缓存)的链接?

时间:2022-01-22 作者:user218247

我正在尝试在顶部的管理栏中创建一个链接,其中只有一个链接可以清除所有缓存。然而,一段时间后,nonce过期。我怎样才能做到这一点?

function add_toolbar_items($admin_bar){
    global $wp_admin_bar, $current_user;

    if ($current_user->ID == 1)

    $admin_bar->add_menu( array(
        \'id\'    => \'purge-all-caches\',
        \'title\' => \'Purge All Caches\',
        \'href\'  => \'/wp-admin/admin.php?page=w3tc_dashboard&w3tc_flush_all&_wpnonce=ce99c46c21\',
        \'meta\'  => array(
            \'title\' => __(\'Purge All Caches\'),            
        ),
    ));

}
add_action(\'admin_bar_menu\', \'add_toolbar_items\', 100);

1 个回复
SO网友:Rup

您应该使用wp_nonce_url() 使用有效的nonce而不是硬编码来生成URL,例如the code from w3_total_cache itself 这样做:

\'href\' => wp_nonce_url( network_admin_url(
        \'admin.php?page=w3tc_dashboard&w3tc_flush_all\' ),
    \'w3tc\' )
您还可以使用权限检查,而不是检查用户是否为ID 1,尽管我很欣赏将此锁定为单个用户也有好处。

相关推荐