我有一个需要帮助的问题,因为我自己找不到解决办法。
我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)
其工作原理如下:如果用户未登录,作者将成为“Hyperspace\\u Bot”。如果用户登录,将显示用户的作者名称。
现在的问题是:当登录的用户通过联系人表单创建帖子时,不会显示作者…。(https://gyazo.com/b51653a1c5fc08b875a50b926c7565d3)(https://gyazo.com/54e4067ecf1227831898a79e1577affa)正如您在屏幕截图上再次看到的,没有输入作者。目前,我总是必须在事后手动输入它们。
以下是插件代码的重要部分:
add_action(\'wpcf7_before_send_mail\', \'createPostData\' );
function createPostData() {
//get user id
//$user = get_userdatabylogin(\'myusername\');
//$user = get_user_by(\'login\', $user_login);
//$udi = $user->ID;
get_currentuserinfo();
if ($_POST[\'aut\'] == \'\') {
// Create post object
$my_post = array(
\'post_title\' => $_POST[\'title\'],
\'post_content\' => $_POST[\'Description\'],
\'post_status\' => \'pending\',
\'post_author\' => 3,
\'post_category\' => array($_POST[\'postcategory\'])
);
} else {
$my_post = array(
\'post_title\' => $_POST[\'title\'],
\'post_content\' => $_POST[\'Description\'],
\'post_status\' => \'publish\',
//\'post_author\' => $user,
\'post_author\' => $user_ID,
\'post_category\' => array($_POST[\'postcategory\'])
);
}
问题在于“post\\u author”=>$第二部分中的User\\u ID我想…。我已经用get\\u current\\u user\\u id()或$author\\u id=get\\u the\\u author\\u meta(“id”)尝试了不同的方法,但找不到解决方案。
如果有人有主意,我将非常感激!
提前非常感谢。
最佳regardsFabian
整个插件:https://pastebin.com/8RFRPRLw
SO网友:Alex Smooth Websites
你的$my_post
数组包含\'post_author\' => $user_ID
, 但是$user_ID
未定义。
根据WP codex, get_currentuserinfo
已弃用,应替换为wp_get_current_user
. 但在这种情况下,您需要ID,因此更好的选择是get_current_user_id
因此,如果替换这一行:
get_currentuserinfo();
使用:
$user_ID = get_current_user_id();
你应该做生意。