Using nonce in menu item

时间:2017-07-22 作者:Duck of Death

我在主标题菜单中有一个注销链接,当你点击链接注销时,你会被重定向到页面,询问你是否真的想注销。我知道它这样做是因为菜单URL中没有nonce。

我的问题是:是否可以在编辑菜单屏幕的CMS外观>菜单中添加nonce?url类似于:example.com/wp-login.php?action=logout&redirect_to=http://example.com/myaccount/&_wpnonce=

只是为了好玩我试着加上wp_create_nonce(\'logout\') 到最后,但这当然行不通。

如果不可能,是否有其他方法绕过“是否确实要注销”屏幕?

1 个回复
最合适的回答,由SO网友: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\');

结束

相关推荐

Two menus show up

如果我将“echo”参数值设置为“true”:<?php if( has_nav_menu( \'primary-menu\' ) ) { wp_nav_menu( $menuParameters = array( \'theme_location\' => \'primary-menu\', \'container\'