acf_verify_nonce()


WordPressのacf_verify_nonce()関数は、Advanced Custom Fieldsプラグインで使用されるセキュリティ機能で、非公開データの保護とリクエストの正当性を確認するために使用されます。この関数は、指定されたnonce値を検証します。

構文

acf_verify_nonce( string $nonce, string $action );

引数の説明

  • $nonce (string) — 検証対象のnonce値。
  • $action (string) — nonceに関連付けられたアクション名。

例 1: GETリクエスト内のnonce検証

GETリクエストで送信されたnonceを検証します。

<?php
if ( isset( $_GET['nonce'] ) && acf_verify_nonce( $_GET['nonce'], 'custom_action' ) ) {
    echo 'Nonceが正しく検証されました。';
} else {
    echo 'Nonce検証に失敗しました。';
}
?>

例 2: POSTリクエスト内のnonce検証

POSTリクエストで送信されたnonceを検証します。

<?php
if ( isset( $_POST['nonce'] ) && acf_verify_nonce( $_POST['nonce'], 'custom_form_submission' ) ) {
    echo 'フォーム送信が認証されました。';
} else {
    echo 'フォーム送信に失敗しました。';
}
?>

例 3: カスタムAJAXリクエストのnonce検証

カスタムAJAXリクエスト内でnonceを検証します。

<?php
add_action( 'wp_ajax_custom_action', function() {
    if ( ! isset( $_POST['nonce'] ) || ! acf_verify_nonce( $_POST['nonce'], 'custom_ajax_action' ) ) {
        wp_send_json_error( 'Nonceエラー。' );
    }
    wp_send_json_success( 'リクエストが成功しました。' );
});
?>

例 4: 編集画面でのnonce検証

投稿編集画面でnonceを検証します。

<?php
add_action( 'admin_post_custom_save', function() {
    if ( ! isset( $_POST['nonce'] ) || ! acf_verify_nonce( $_POST['nonce'], 'save_post' ) ) {
        wp_die( '不正なリクエストです。' );
    }
    // 投稿の保存処理
});
?>

例 5: フロントエンドフォームのnonce検証

フロントエンドでフォーム送信を検証します。

<?php
if ( isset( $_POST['acf_nonce'] ) && acf_verify_nonce( $_POST['acf_nonce'], 'front_form' ) ) {
    echo 'フォームが正しく送信されました。';
} else {
    echo 'フォーム送信に失敗しました。';
}
?>