404问题是因为name
是WordPress查询变量。在URL中添加该变量会导致WordPress查询包含slug的帖子,slug与name
字段,而不是页面。将表单字段名称更改为您知道唯一的名称。这是一种很好的做法,适用于所有需要命名的内容-表单字段、函数等。。
对于菜单项问题,您可以使用nav_menu_link_attributes
过滤器以更改href
用于特定菜单项。这里我们检查一下Trainings
是菜单项的标题,如果是这种情况,请添加GET参数:
function wpd_add_logged_in_get_params(){
if( is_user_logged_in() ){
add_filter( \'nav_menu_link_attributes\', function( $atts, $item ){
if( \'Trainings\' == $item->title ){
$current_user = wp_get_current_user();
$atts[\'href\'] = esc_url(
add_query_arg(
array(
\'wpd_name\' => $current_user->display_name,
\'wpd_email\' => $current_user->user_email
),
$atts[\'href\']
)
);
}
return $atts;
}, 10, 2 );
}
}
add_action( \'template_redirect\', \'wpd_add_logged_in_get_params\' );