在AJAX WP POST INSERT上分配作者

时间:2019-07-09 作者:Noufal Binu

如何将前端文章作者分配给当前登录用户。我有前端帖子提交表单(wp\\u insert\\u post)抛出了ajax帖子请求。所以用户登录并通过前端表单发布。我需要得到哪个用户提交了帖子。我对编码是新手。

public function submit_testimonial()
    {  
        if (! DOING_AJAX || ! check_ajax_referer(\'testimonial-nonce\', \'nonce\') ) {
            return $this->return_json(\'error\');
        }
        $name = sanitize_text_field($_POST[\'name\']);
        $data = array(
            \'name\' => $name,
        );
        $args = array(
            \'post_title\' => $name,
            \'post_content\' => $message,
            \'post_author\' => 1,
            \'post_status\' => \'publish\',
            \'post_type\' => \'testimonial\',
            \'author\' => $current_user->ID,
            \'meta_input\' => array(
                \'_zon_testimonial_key\' => $data
            )
        );
        $postID = wp_insert_post( $args );
        if ($postID) {
            return $this->return_json(\'success\'); 
        }  
    }
    public function return_json( $status ) {
        $return = array(
            \'status\' => $status
            );
            wp_send_json($return);    
    }

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

你就快到了。下面是将post的作者设置为ID为1的用户的部分:

    \'post_author\' => 1,
    \'post_status\' => \'publish\',
    \'post_type\' => \'testimonial\',
    \'author\' => $current_user->ID,
您甚至尝试将author设置为$current\\u user,但您不会在代码中的任何地方启动此变量,而是author 字段而不是post_author.

下面是正确的版本:

    \'post_author\' => get_current_user_id(),
    \'post_status\' => \'publish\',
    \'post_type\' => \'testimonial\',

相关推荐

为什么在动态更改短码内容后不再检测到我的AJAX事件

我有两个input select (下拉)在我的快捷代码的内容中。第一个是在初始化短代码内容时创建的,而第二个是在用户选择第一个下拉列表的值时创建的。为此,第二个是使用Ajax句柄动态创建的。选择第二个条目必须显示一些相应的数据。第一个下拉菜单工作正常:它显示第二个下拉菜单及其值。当我想选择第二个下拉列表的值时,就会出现问题。我使用相同的jQuery事件(element.on(\'change\' ...) 它永远不会熄灭。它与第一个完全相同,但不起作用。谁能给我解释一下为什么?以下是我的PHP代码:&l