如何将用户名转换为向数据库发送数据的表单

时间:2014-08-08 作者:Acidon

我正在尝试通过表单将用户名传递到数据库:

[insert_php]
$current_user= wp_get_current_user();
$id= $current_user->user_login; 
[/insert_php]


<input type="hidden" name="id" value="[insert_php]$id[/insert_php]">
但它没有通过,其余的可见输入确实通过了。

3 个回复
SO网友:jaswrks

如果要输出$id, 你需要回音
同时确保使用esc_attr() 作为良好的安全实践

<input type="hidden" name="id" value="[insert_php]echo esc_attr( $id );[/insert_php]">
此外,正如另一个答案中所指出的,您将其称为“id”,但实际上您使用的是登录名(用户名)。如果只需要数字ID,请使用get_current_user_id().

<input type="hidden" name="id" value="[insert_php]echo esc_attr( get_current_user_id() );[/insert_php]">

SO网友:Q Studio

实际上,如果您使用一个短代码通过一个编辑过的页面运行代码,@jaswrks的答案是可行的。

但是,这是使用PHP的背靠背方式。。您已经很快学会了如何在WordPress中真正编写PHP,而不是通过一个代理,比如一个允许您在编辑器中编写准PHP的快捷码。。

因此,您还可以尝试编辑表单出现的页面模板(或通过小部件、块、外部功能或任何其他可用方式添加),并添加以下内容:

<?php

// get current user ID, with default value, if empty
$current_user_id = wp_get_current_user_id() ?? 0;

?>
<input type="hidden" name="id" value="<?php echo esc_attr( $current_user_id ); ?>">  

SO网友:CTala

您想要的是使用:

$id = get_current_user_id()
您使用的函数的作用是获取对象。

结束

相关推荐

WordPress edit.php类别过滤器仅显示来自直接类别的帖子,而不显示来自其子类别的帖子

在管理编辑。php页面,当我按特定类别过滤帖子时(使用内置下拉列表),它会显示与该类别相关的所有帖子,以及“在”其子类别下的所有帖子。如何更改此功能,以便在按类别筛选时只显示该类别中的帖子,而不显示子类别中的帖子。非常感谢您的帮助,因为我在网上找不到有关此的任何信息。非常感谢。