wp_destroy_other_sessions()


WordPress関数wp_destroy_other_sessions()は、現在のユーザーセッションを除き、すべての他のセッションを削除するために使用されます。この関数は特にセキュリティ目的で使用され、ユーザーがログイン情報を一括リセットしたい場合などに役立ちます。

構文

wp_destroy_other_sessions();

例 1. すべての他のセッションを削除

この例では、現在のユーザー以外のすべてのセッションを削除します。

<?php wp_destroy_other_sessions(); ?>

例 2. ユーザープロフィールでの使用

ユーザーがプロフィールを更新する際に、他のセッションを無効にするコード例です。

<?php
add_action( 'profile_update', function() {
    wp_destroy_other_sessions();
} );
?>

例 3. カスタムボタンでのトリガー

管理画面にカスタムボタンを追加し、それをクリックするとセッションを削除する例です。

<?php
add_action( 'admin_menu', function() {
    add_menu_page( 'セッションリセット', 'セッションリセット', 'manage_options', 'reset-sessions', function() {
        if ( isset( $_POST['reset_sessions'] ) ) {
            wp_destroy_other_sessions();
            echo '他のセッションを削除しました。';
        }
        ?>
        <form method="post">
            <button type="submit" name="reset_sessions">セッションをリセットする</button>
        </form>
        <?php
    } );
} );
?>

例 4. 特定の条件下での使用

特定の条件が満たされた場合にセッションをリセットする方法です。

<?php
if ( is_user_logged_in() && current_user_can( 'administrator' ) ) {
    wp_destroy_other_sessions();
}
?>

注意点

  • wp_destroy_other_sessions()は現在のセッションを保持します。
  • ユーザーが複数のデバイスでログインしている場合、他のすべてのセッションが無効になります。
  • 関数はログインしているユーザーに対してのみ動作します。

関連機能: