web-dev-qa-db-ja.com

メニュー項目でナンスを使う

メインヘッダーメニューにログアウトリンクがあります。リンクをクリックしてログアウトすると、本当にログアウトするかどうかを尋ねるページにリダイレクトされます。メニューURLにナンスがないのでこれをしているのを私は知っています。

私の質問です:それは編集メニュー画面のCMS外観>メニューに一回だけを追加することさえ可能ですか? URLは次のようなものです。example.com/wp-login.php?action=logout&redirect_to=http://example.com/myaccount/&_wpnonce=

笑いのためだけに最後にwp_create_nonce('logout')を付け加えてみましたが、もちろんうまくいきません。

これが不可能な場合は、「ログアウトしてもよろしいですか?」画面をバイパスする別の方法がありますか?

2
Duck of Death

フィルタを追加するだけです。

function change_menu($items){
  foreach($items as $item){
    if( $item->title == "Log Out"){
         $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' );
    }
  }
  return $items;

}
add_filter('wp_nav_menu_objects', 'change_menu');
1
Duck of Death