WordPress将输入字段中的值设置为登录用户的注释作者



我有一个共享帐户,我们称之为"营销"。 现在我有三个人使用这个帐户,分别叫安娜、本和马克斯。

当有人登录此帐户并想用他们的名字输入评论时,它始终显示名称"marketing"作为作者。我如何更改它,以便我在输入字段中输入一个名称,并从中获取值作为我的评论作者。在我的评论中.php我没有检查用户是否已登录并在此处调用它:

<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="2"/>

我尝试在我的函数中执行以下操作.php:

function change_author( $commentdata ) {
if ( $commentdata['user_ID'] == 2 ) {  // User ID for Marketing
$commentdata['user_ID'] = 0; 
$commentdata['comment_author'] = '';
}
return $commentdata;
}
add_filter( 'preprocess_comment' , 'change_author' ); 

在这种情况下,我的comment_author将始终是匿名的,如果我将其设置为NULL.

当我给变量一个值时$commentdata['comment_author'] = 'test';我得到"测试"作为我的comment_author但正如我所说,我希望在我的输入字段中设置的值。它适用于未登录的用户,所以我认为登录用户也可能有一个技巧。

在phpMyAdmin中,我检查了数据库中的条目,它为我提供了ID等的正确值。但它也清空了导致匿名作者的comment_author字段。

我真的希望有人能给我正确的提示来完成这项任务。

https://wordpress.org/plugins/allow-multiple-accounts/此插件可能对您有所帮助,您可以在一个帐户下拥有多个帐户。

的,我不知道这太容易了。

function change_author( $commentdata ) {
if ( $commentdata['user_ID'] == 2 ) { 
$commentdata['user_ID'] = 0;
$commentdata['comment_author'] = $_POST['author'];
$commentdata['comment_author_email'] = '';
$commentdata['comment_author_url'] = '';
}
return $commentdata;
}
add_filter( 'preprocess_comment' , 'change_author' ); 

我认为这也适用于!= 0而不是== 2. 这只是我的自定义主题的解决方案,但我认为它也适用于

$commentdata['comment_author_email'] = $_POST['mail'];
$commentdata['comment_author_url'] = $_POST['url'];

注意:$_POST[] 中的值是名称或 ID 输入字段。没有测试所有内容,因为名称和ID相同 我的主题中的值。

在本地测试了几次,效果很好!

最新更新