在Android应用程序上添加WordPress用户数据库

时间:2016-01-21 作者:M ASED AHMED

过去两年我一直在使用WordPress,我总是使用插件来实现额外的功能。但现在我想了解更多关于WordPress的信息。我想学习如何使用html更改内容,以及如何使用json URL从数据库中调用WordPress get_userdata,但我不知道如何更改。

My question is:

我可以这样做吗?如果是这样,我如何使用json URL在wordpress中获取用户信息?(如果需要,我有SSL证书)

任何答案都会很有帮助。

我已经检查过了,但我不明白这是怎么发生的

在目录外使用WordPress用户详细信息

我正在使用android studio创建一个android应用程序

我想在我的Android应用程序上创建登录屏幕,以便用户能够从Android应用程序登录或注册

1 个回复
SO网友:jgraup

可以使用add_rewrite_rule().

在这种情况下,我们将注册端点http://example.com/api/user_data/{id}.

然后检查以确保IDis numeric. 如果是,请查找user by id 并输出JSON response.

    URL
    http://example.com/api/user_data/1

    JSON
    {
      "success": true,
      "data": {
        "id": 1,
        "display_name": "your_username",
        "user_registered": "2015-11-12 05:00:00",
        "first": "First",
        "last": "Last Name"
      }
    }
PHP将其放入函数中。php或插件,然后刷新永久链接。

if ( ! class_exists( \'JSONEndpoint_UserData\' ) ):
    /**
     * The code that registers the endpoint and handles the result
     */
    class JSONEndpoint_UserData {

        const ENDPOINT_NAME       = \'api/user_data\'; // endpoint to capture
        const ENDPOINT_QUERY_NAME = \'__api_user_data\'; // turns to param

        // WordPress hooks
        public function run() {
            add_filter( \'query_vars\', array( $this, \'add_query_vars\' ), 0 );
            add_action( \'parse_request\', array( $this, \'sniff_requests\' ), 0 );
            add_action( \'init\', array( $this, \'add_endpoint\' ), 0 );
        }

        // Add public query vars
        public function add_query_vars( $vars ) {
            $vars[] = static::ENDPOINT_QUERY_NAME;
            $vars[] = \'id\';

            return $vars;
        }

        // Add API Endpoint
        public function add_endpoint() {
            add_rewrite_rule( \'^\' . static::ENDPOINT_NAME . \'/([^/]+)/?$\', \'index.php?\' . static::ENDPOINT_QUERY_NAME . \'=1&id=$matches[1]\', \'top\' );
// --->
            flush_rewrite_rules( true ); //// <---------- REMOVE THIS WHEN DONE TESTING
// --->
        }

        // Sniff Requests
        public function sniff_requests( $wp_query ) {

            global $wp;

            if ( isset( $wp->query_vars[ static::ENDPOINT_QUERY_NAME ] ) ) {
                $this->handle_request(); // handle it
            }
        }

        // Handle Requests
        protected function handle_request() {
            global $wp;

            // we only deal with number$
            $id = is_numeric( $wp->query_vars[ \'id\' ] ) ? absint( $wp->query_vars[ \'id\' ] ) : false;

            if ( ! is_numeric( $id ) || ! $user = get_user_by( \'id\', $id ) ) {
                wp_send_json_error( array( \'message\' => \'Invalid User ID\' ) );
            }

            // ALLOWING ACCESS FROM ANYWHERE --- WE MIGHT WANT TO RESTRICT THE PLACES THAT CAN USE THIS
            header( "Access-Control-Allow-Origin: *" );

            // prep the response
            $data = array(
                \'id\'              => $user->ID,
                \'display_name\'    => $user->data->display_name,
                \'user_registered\' => $user->data->user_registered, 
                \'first\'           => $user->first_name,
                \'last\'            => $user->last_name,
            );

            // write the response
            wp_send_json_success( $data );

            die(); // just in case
        }
    }

    $ep = new JSONEndpoint_UserData();
    $ep->run();

endif; // JSONEndpoint_UserData

相关推荐

使用REST API将用户头像从Android上传到WordPress

我正在开发一个android应用程序,让用户能够使用RESTAPI浏览、注册、登录、发布和评论我的wordpress博客。我现在正在尝试为用户添加一种更新其头像的方法,但我不知道如何将媒体上传到我的博客 add_action(\'rest_api_init\', function () { register_rest_route( \'wp/v2\', \'upload_image/\',array( \'methods\' =>