Користувачі (users)

Ці маршрути дозволяють отримати/створити/оновити/видалити всілякі дані користувачів у WP.

А також з версії WP 5.6, з’явилися маршрути, які дозволяють отримати/створити/оновити/видалити паролі додатків конкретного користувача.

Можливі маршрути (кінцеві точки маршрутів описані нижче):

/wp/v2/users // працює з усіма користувачами
/wp/v2/users/{ID} // працює із зазначеним користувачем
/wp/v2/users/me // працює з поточним користувачем

/wp/v2/users/{ID}/application-passwords // працює із зазначеним користувачем
/wp/v2/users/me/application-passwords // працює з поточним користувачем

/wp/v2/users/{ID}/application-passwords/uuid
/wp/v2/users/me/application-passwords/uuid




Схема

Схема показує всі поля, які є об’єкта: поля об’єкта які поверне запит.




Ресурс Users

ПараметрКонтекстОпис
id
Число readonly
embed, view, editУнікальний ідентифікатор користувача.
username
Рядок required
editІм’я входу користувача.
name
Рядок
embed, view, editІм’я користувача, що відображається.
first_name
Рядок
editІм’я користувача.
last_name
Рядок
editПрізвище користувача.
email
Рядок required
editАдреса електронної пошти користувача.
url
Рядок
embed, view, editURL користувача.
description
Рядок
embed, view, editОпис користувача.
link
Рядок readonly
embed, view, editURL автора для користувача.
locale
Рядок
editЛокаль для користувача.
nickname
Рядок
editНік користувача.
slug
Рядок
embed, view, editЛітерно-цифровий ідентифікатор користувача.
registered_date
Рядок readonly
editДата реєстрації користувача.
roles
Масив
editРолі призначені користувачеві.
password
Рядок required
Пароль користувача (ніколи не відображається).
capabilities
Об’єкт readonly
editУсі можливості призначені користувачеві.
extra_capabilities
Об’єкт readonly
editБудь-які додаткові можливості призначені користувачеві.
avatar_urls
Об’єкт readonly
embed, view, editURL аватара користувача.
meta
Об’єкт
view, editМета поля.




Ресурс Application Passwords

ПараметрКонтекстОпис
uuid
Рядок readonly
view, edit, embedУнікальний ідентифікатор для пароля програми.
app_id
Рядок
view, edit, embedUUID надається програмою для унікальної ідентифікації. Рекомендується використовувати UUID v5 з простором імен URL або DNS.
name
Рядок required
view, edit, embedНазва пароля програми.
password
Рядок readonly
editСтворений пароль. Доступний після додавання програми.
created
Рядок readonly
view, editДата та час (GMT) створення пароля програми.
last_used
Рядок/null readonly
view, editДата та час (GMT) останнього використання пароля програми.
last_ip
Рядок/null readonly
view, editIP-адреса, з якої востаннє використовувався пароль програми.




wp/v2/users

Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/users

GitHub

{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "POST"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "context": {
                    "description": "Рамки, в яких зроблено запит, визначають поля відповіді.",
                    "type": "string",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "default": "view",
                    "required": false
                },
                "page": {
                    "description": "Поточна сторінка колекції.",
                    "type": "integer",
                    "default": 1,
                    "minimum": 1,
                    "required": false
                },
                "per_page": {
                    "description": "Максимальна кількість об'єктів, що повертається у вибірці.",
                    "type": "integer",
                    "default": 10,
                    "minimum": 1,
                    "maximum": 100,
                    "required": false
                },
                "search": {
                    "description": "Обмежити результати до відповідних рядків.",
                    "type": "string",
                    "required": false
                },
                "exclude": {
                    "description": "Переконатися, що вибірка виключає певні ID.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "default": [],
                    "required": false
                },
                "include": {
                    "description": "Обмежити вибірку до певних ID.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "default": [],
                    "required": false
                },
                "offset": {
                    "description": "Зсув вибірки на певну кількість об'єктів.",
                    "type": "integer",
                    "required": false
                },
                "Order": {
                    "default": "asc",
                    "description": "Упорядкувати сортування атрибуту за зростанням або зменшенням.",
                    "enum": [
                        "asc",
                        "desc"
                    ],
                    "type": "string",
                    "required": false
                },
                "orderby": {
                    "default": "name",
                    "description": "Сортувати колекцію за атрибутом об'єкта.",
                    "enum": [
                        "id",
                        "include",
                        "name",
                        "registered_date",
                        "slug",
                        "include_slugs",
                        "email",
                        "url"
                    ],
                    "type": "string",
                    "required": false
                },
                "slug": {
                    "description": "Обмежити вибірку користувачами з одним або більше спеціальними ярликами.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "required": false
                },
                "Roles": {
                    "description": "Обмежити вибірку до користувачів, які задовольняють щонайменше одну вказану роль. Можна вказати CSV список або одну роль.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "required": false
                },
                "who": {
                    "description": "Обмежити вибірку користувачами-авторами.",
                    "type": "string",
                    "enum": [
                        "authors"
                    ],
                    "required": false
                }
            }
        },
        {
            "methods": [
                "POST"
            ],
            "args": {
                "username": {
                    "description": "Ім'я входу для користувача.",
                    "type": "string",
                    "required": true
                },
                "name": {
                    "description": "Ім'я користувача, що відображається.",
                    "type": "string",
                    "required": false
                },
                "first_name": {
                    "description": "Ім'я користувача.",
                    "type": "string",
                    "required": false
                },
                "last_name": {
                    "description": "Прізвище користувача.",
                    "type": "string",
                    "required": false
                },
                "email": {
                    "description": "Адреса email користувача.",
                    "type": "string",
                    "format": "email",
                    "required": true
                },
                "url": {
                    "description": "URL користувача.",
                    "type": "string",
                    "format": "uri",
                    "required": false
                },
                "description": {
                    "description": "Опис користувача.",
                    "type": "string",
                    "required": false
                },
                "locale": {
                    "description": "Локаль для користувача.",
                    "type": "string",
                    "enum": [
                        "",
                        "en_US",
                        "ru_RU"
                    ],
                    "required": false
                },
                "nickname": {
                    "description": "Нік користувача.",
                    "type": "string",
                    "required": false
                },
                "slug": {
                    "description": "Літерно-цифровий ідентифікатор користувача.",
                    "type": "string",
                    "required": false
                },
                "Roles": {
                    "description": "Ролі призначені користувачеві.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "required": false
                },
                "password": {
                    "description": "Пароль користувача (ніколи не відображається).",
                    "type": "string",
                    "required": true
                },
                "meta": {
                    "description": "Мета поля.",
                    "type": "object",
                    "properties": [],
                    "required": false
                }
            }
        }
    ],
    "Schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "user",
        "type": "object",
        "properties": {
            "id": {
                "description": "Унікальний ідентифікатор користувача.",
                "type": "integer",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "username": {
                "description": "Ім'я входу для користувача.",
                "type": "string",
                "context": [
                    "edit"
                ],
                "required": true
            },
            "name": {
                "description": "Ім'я користувача, що відображається.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "first_name": {
                "description": "Ім'я користувача.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "last_name": {
                "description": "Прізвище користувача.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "email": {
                "description": "Адреса email користувача.",
                "type": "string",
                "format": "email",
                "context": [
                    "edit"
                ],
                "required": true
            },
            "url": {
                "description": "URL користувача.",
                "type": "string",
                "format": "uri",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "description": {
                "description": "Опис користувача.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "link": {
                "description": "URL автора для користувача.",
                "type": "string",
                "format": "uri",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "locale": {
                "description": "Локаль для користувача.",
                "type": "string",
                "enum": [
                    "",
                    "en_US",
                    "ru_RU"
                ],
                "context": [
                    "edit"
                ]
            },
            "nickname": {
                "description": "Нік користувача.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "slug": {
                "description": "Літерно-цифровий ідентифікатор користувача.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "registered_date": {
                "description": "Дата реєстрації користувача.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "Roles": {
                "description": "Ролі призначені користувачеві.",
                "type": "array",
                "items": {
                    "type": "string"
                },
                "context": [
                    "edit"
                ]
            },
            "password": {
                "description": "Пароль користувача (ніколи не відображається).",
                "type": "string",
                "context": [],
                "required": true
            },
            "capabilities": {
                "description": "Всі можливості призначені користувачеві.",
                "type": "object",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "extra_capabilities": {
                "description": "Будь-які додаткові можливості призначені користувачеві.",
                "type": "object",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "avatar_urls": {
                "description": "URL аватара користувача.",
                "type": "object",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "24": {
                        "description": "URL аватари з розміром зображення в 24 пікселів.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    },
                    "48": {
                        "description": "URL аватари з розміром зображення в 48 пікселів.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    },
                    "96": {
                        "description": "URL аватари з розміром зображення в 96 пікселів.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    }
                }
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    },
    "_links": {
        "self": [
            {
                "href": "https://wp-doc.com/api/wp/v2/users"
            }
        ]
    }
}




Список користувачів

Алгоритм схожий на роботу функції get_users() .

Вид запиту

Доступ: публічний

GET /wp/v2/users

Параметри запиту

context
(string)
Рамки у яких зроблено запит, визначають поля відповіді.

Можливо:
view, embed, edit .

Типово: view

page
(integer)
Поточна сторінка колекції.

За замовчуванням: 1

per_page
(integer)
Максимальна кількість об’єктів, що повертається у вибірці.

Типово: 10

search
(string)
Обмежити результати до збігаються з рядком.
exclude
(array)
Виключити із вибірки певні ID. Вказується масив ID.

За замовчуванням: []

include
(array)
Обмежити вибірку до певних ID. Вказується масив ID.

За замовчуванням: []

offset
(integer)
Зсув вибірки на кілька об’єктів.
order
(string)
Сортувати за зростанням (asc) або зменшенням (desc).

Можливо:
asc, desc

За замовчуванням: asc

orderby
(string)
Поле, яким потрібно сортувати колекцію.

Можливо:
id, include, name, registered_date, slug, include_slugs, email, url .

Типово: name

slug
(array)
Ярлик користувача якого потрібно отримати. Можна вказати кілька ярликів у масиві.
roles
(array)
Отримати користувачів із зазначеною роллю. Можна вказати кілька ролей у масиві. Можна вказати список CSV або одну роль.
who
(string)
Обмежити вибірку користувачами-авторами.

Можливо:
authors .

Приклад запиту

$ curl http://demo.wp-api.org/wp-json/wp/v2/users?search=human

Відповідь:

[
	{
		"id": 1,
		"name": "Human Made",
		"url": "",
		"description": "",
		"link": "https://demo.wp-api.org/author/humanmade/",
		"slug": "humanmade",
		"avatar_urls": {
			"24": "http://2.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=24&d=mm&r=g",
			"48": "http://2.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=48&d=mm&r=g",
			"96": "http://2.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=96&d=mm&r=g"
		},
		"meta": [],
		"_links": {
			"self": [
				{
					"href": "https://demo.wp-api.org/wp-json/wp/v2/users/1"
				}
			],
			"collection": [
				{
					"href": "https://demo.wp-api.org/wp-json/wp/v2/users"
				}
			]
		}
	},
	{...}
]




Створення користувача

Алгоритм схожий на роботу функції wp_create_user() .

Вид запиту

Доступ: потрібна авторизація

POST /wp/v2/users

Параметри запиту

username
(рядок) (обов’язковий)
Ім’я входу користувача.
email
(рядок) (обов’язковий)
Адреса e-mail користувача.
password
(рядок) (обов’язковий)
Пароль користувача (ніколи не відображається).
name
(рядок)
Ім’я користувача, що відображається.
first_name
(рядок)
Ім’я користувача.
last_name
(рядок)
Прізвище користувача.
url
(рядок)
URL користувача.
description
(рядок)
Опис користувача.
locale
(рядок)
Локаль для користувача. Можливо:
”, en_US, ru_RU, uk .
nickname
(рядок)
Нік користувача.
slug
(рядок)
Літерно-цифровий ідентифікатор користувача.
roles
(масив)
Ролі призначені користувачеві. Вказується масив ролей.
meta
(об’єкт)
Мета поля.

Приклад запиту

$ curl -X POST -i http://example.com/wp-json/wp/v2/users?username=neuser&[email protected]&password=123456

Відповідь:

{
	"id": 2,
	"username": "neuser",
	"name": "neuser",
	"first_name": "",
	"last_name": "",
	"email": "[email protected]",
	"url": "",
	"description": "",
	"link": "http://example.com/author/neuser/",
	"locale": "ru_RU",
	"nickname": "neuser",
	"slug": "neuser",
	"Roles": [
		"subscriber"
	],
	"registered_date": "2018-08-31T13:36:18+00:00",
	"capabilities": {
		"read": true,
		"level_0": true,
		"subscriber": true
	},
	"extra_capabilities": {
		"subscriber": true
	},
	"avatar_urls": {
		"24": "http://0.gravatar.com/avatar/3731f606afa8dccc9123bdd4062c4af1?s=24&d=mm&r=g",
		"48": "http://0.gravatar.com/avatar/3731f606afa8dccc9123bdd4062c4af1?s=48&d=mm&r=g",
		"96": "http://0.gravatar.com/avatar/3731f606afa8dccc9123bdd4062c4af1?s=96&d=mm&r=g"
	},
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "http://example.com/wp-json/wp/v2/users/2"
			}
		],
		"collection": [
			{
				"href": "http://example.com/wp-json/wp/v2/users"
			}
		]
	}
}

Приклад запиту на PHP з авторизацією

Авторизація працює на базі Паролей додатків

$res = wp_remote_post( 'https://wp-kama.dev/api/wp/v2/users', [
	'headers' => [
		'Authorization' => 'Basic a21RyBYVjJzIE5a2RVBWjQFtYTpg5W5uSTIYTRVIFUgeaw==',
	],
	'body' => [
		'username' => 'testets2',
		'email' => '[email protected]',
		'password' => 'test123',
	],
]);

if( 200 === wp_remote_retrieve_response_code( $res ) ){
	// успішно
}
else {
	// помилка
}

// out
print_r (json_decode (wp_remote_retrieve_body ($ res))));

В результаті отримаємо:

// Можливі помилки при вдалому запиті:

stdClass Object(
	[code] => existing_user_login
	[message] => Вибачте, це ім'я користувача вже існує!
	[data] =>
)

stdClass Object(
	[code] => existing_user_email
	[message] => Вибачте, ця адреса email вже використовується!
	[data] =>
)

// Користувач створений

stdClass Object(
	[id] => 4562
	[username] => testets2
	[name] => testets2
	[first_name] =>
	[last_name] =>
	[email] => [email protected]
	[url] =>
	[description] =>
	[link] => https://wp-kama.dev/id_author/testets2
	[locale] => ru_UA
	[nickname] =>
	[slug] => testets2
	[roles] => Array(
			[0] => subscriber
		)

	[registered_date] => 2021-07-25T14:04:18+00:00
	[capabilities] => stdClass Object(
			[read] => 1
			[level_0] => 1
			[subscriber] => 1
		)

	[extra_capabilities] => stdClass Object(
			[subscriber] => 1
		)

	[avatar_urls] => stdClass Object(
			[24] => https://secure.gravatar.com/avatar/2c0ba19f07a7894f544290488963e835?s=24&d=mystery&r=g
			[48] ​​=> https://secure.gravatar.com/avatar/2c0ba19f07a7894f544290488963e835?s=48&d=mystery&r=g
			[96] => https://secure.gravatar.com/avatar/2c0ba19f07a7894f544290488963e835?s=96&d=mystery&r=g
		)

	[meta] => Array()

	[_links] => stdClass Object(
		[self] => Array(
			[0] => stdClass Object(
					[href] => https://wp-kama.dev/api/wp/v2/users/4562
				)
		)

		[collection] => Array(
			[0] => stdClass Object(
					[href] => https://wp-kama.dev/api/wp/v2/users
				)
		)
	)

)




wp/v2/users/{ID}

Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/users/{ID}

GitHub

{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Унікальний ідентифікатор користувача.",
                    "type": "integer"
                },
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Рамки, в яких зроблено запит, визначають поля відповіді.",
                    "type": "string"
                }
            }
        },
        {
            "methods": [
                "POST",
                "PUT",
                "PATCH"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Унікальний ідентифікатор користувача.",
                    "type": "integer"
                },
                "username": {
                    "required": false,
                    "description": "Ім'я входу для користувача.",
                    "type": "string"
                },
                "name": {
                    "required": false,
                    "description": "Ім'я користувача, що відображається.",
                    "type": "string"
                },
                "first_name": {
                    "required": false,
                    "description": "Ім'я користувача.",
                    "type": "string"
                },
                "last_name": {
                    "required": false,
                    "description": "Прізвище користувача.",
                    "type": "string"
                },
                "email": {
                    "required": false,
                    "description": "Адреса e-mail користувача.",
                    "type": "string"
                },
                "url": {
                    "required": false,
                    "description": "URL користувача.",
                    "type": "string"
                },
                "description": {
                    "required": false,
                    "description": "Опис користувача.",
                    "type": "string"
                },
                "locale": {
                    "required": false,
                    "enum": [
                        "",
                        "en_US",
                        "ru_RU",
                        "uk"
                    ],
                    "description": "Локаль для користувача.",
                    "type": "string"
                },
                "nickname": {
                    "required": false,
                    "description": "Нік користувача.",
                    "type": "string"
                },
                "slug": {
                    "required": false,
                    "description": "Літерно-цифровий ідентифікатор користувача.",
                    "type": "string"
                },
                "Roles": {
                    "required": false,
                    "description": "Ролі призначені користувачеві.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "password": {
                    "required": false,
                    "description": "Пароль користувача (ніколи не відображається).",
                    "type": "string"
                },
                "meta": {
                    "required": false,
                    "description": "Мета поля.",
                    "type": "object"
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Унікальний ідентифікатор користувача.",
                    "type": "integer"
                },
                "force": {
                    "required": false,
                    "default": false,
                    "description": "Повинно бути дійсним, тому що користувачів не можна перемістити в кошик.",
                    "type": "boolean"
                },
                "reassign": {
                    "required": true,
                    "description": "Перезначити видалені записи користувача та посилання на цей ID користувача.",
                    "type": "integer"
                }
            }
        }
    ],
    "Schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "user",
        "type": "object",
        "properties": {
            "id": {
                "description": "Унікальний ідентифікатор користувача.",
                "type": "integer",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "username": {
                "description": "Ім'я входу для користувача.",
                "type": "string",
                "context": [
                    "edit"
                ],
                "required": true
            },
            "name": {
                "description": "Ім'я користувача, що відображається.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "first_name": {
                "description": "Ім'я користувача.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "last_name": {
                "description": "Прізвище користувача.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "email": {
                "description": "Адреса e-mail користувача.",
                "type": "string",
                "format": "email",
                "context": [
                    "edit"
                ],
                "required": true
            },
            "url": {
                "description": "URL користувача.",
                "type": "string",
                "format": "uri",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "description": {
                "description": "Опис користувача.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "link": {
                "description": "URL автора для користувача.",
                "type": "string",
                "format": "uri",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "locale": {
                "description": "Локаль для користувача.",
                "type": "string",
                "enum": [
                    "",
                    "en_US",
                    "ru_RU",
                    "uk"
                ],
                "context": [
                    "edit"
                ]
            },
            "nickname": {
                "description": "Нік користувача.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "slug": {
                "description": "Літерно-цифровий ідентифікатор користувача.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "registered_date": {
                "description": "Дата реєстрації користувача.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "Roles": {
                "description": "Ролі призначені користувачеві.",
                "type": "array",
                "items": {
                    "type": "string"
                },
                "context": [
                    "edit"
                ]
            },
            "password": {
                "description": "Пароль користувача (ніколи не відображається).",
                "type": "string",
                "context": [],
                "required": true
            },
            "capabilities": {
                "description": "Всі можливості призначені користувачеві.",
                "type": "object",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "extra_capabilities": {
                "description": "Будь-які додаткові можливості призначені користувачеві.",
                "type": "object",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "avatar_urls": {
                "description": "URL аватара користувача.",
                "type": "object",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "24": {
                        "description": "URL аватари з розміром зображення в 24 пікселів.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    },
                    "48": {
                        "description": "URL аватари з розміром зображення в 48 пікселів.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    },
                    "96": {
                        "description": "URL аватари з розміром зображення в 96 пікселів.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    }
                }
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    }
}




Отримання користувача

Алгоритм схожий на роботу функції get_userdata() .

Вид запиту

Доступ: публічний

GET /wp/v2/users/{id}

Параметри запиту

context
(рядок)
Область, у якій виконується запит; визначає поля, присутні у відповіді.

Можливо:
view, embed, edit

За замовчуванням: view

Приклад запиту

$ curl http://demo.wp-api.org/wp-json/wp/v2/users/1
{
	"id": 1,
	"name": "Human Made",
	"url": "",
	"description": "",
	"link": "https://demo.wp-api.org/author/humanmade/",
	"slug": "humanmade",
	"avatar_urls": {
		"24": "http://2.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=24&d=mm&r=g",
		"48": "http://2.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=48&d=mm&r=g",
		"96": "http://2.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=96&d=mm&r=g"
	},
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "https://demo.wp-api.org/wp-json/wp/v2/users/1"
			}
		],
		"collection": [
			{
				"href": "https://demo.wp-api.org/wp-json/wp/v2/users"
			}
		]
	}
}




Оновлення користувача

Алгоритм схожий на роботу функції wp_update_user() .

Вид запиту

Доступ: потрібна авторизація

POST|PUT|PATCH /wp/v2/users/{id}

Параметри запиту

username
(рядок)
Ім’я входу користувача.
name
(рядок)
Ім’я користувача, що відображається.
first_name
(рядок)
Ім’я користувача.
last_name
(рядок)
Прізвище користувача.
email
(рядок)
Адреса e-mail користувача.
url
(рядок)
URL користувача на сторінку постів.
description
(рядок)
Опис користувача.
locale
(рядок)
Локаль для користувача. Можливо:
”, en_US, ru_RU, uk .
nickname
(рядок)
Нік користувача.
slug
(рядок)
Ярлик користувача.
roles
(масив)
Ролі призначені користувачеві. Масив рядків.
password
(рядок)
Пароль користувача (ніколи не відображається).
meta
(об’єкт)
Мета поля.

Приклад запиту

$ curl -X POST http://demo.wp-api.org/wp-json/wp/v2/users/[email protected]




Видалення користувача

Алгоритм схожий на роботу функції wp_delete_user() .

Вид запиту

Доступ: потрібна авторизація

DELETE /wp/v2/users/{id}

Параметри запиту

force
(true/false)
Завжди має бути true, тому що користувачів не можна перемістити до корзини.

Типово: false

reassign
(число) (обов’язковий)
ID користувача на якого потрібно перекинути всі пости та посилання, що видаляється. Якщо не вказати цей параметр, всі пости видаленого користувача будуть також видалені.

Приклад запиту

$ curl -X DELETE http://demo.wp-api.org/wp-json/wp/v2/users/2

Помилка: не вказано параметр reassign

{
	"code": "rest_missing_callback_param",
	"message": "Відсутний параметр: reassign",
	"data": {
		"status": 400,
		"params": [
			"reassign"
		]
	}
}

Вкажемо цей параметр:

$ curl -X DELETE http://demo.wp-api.org/wp-json/wp/v2/users/2?reassign=1

Знову помилка: потрібно обов’язково вказати force=true

{
	"code": "rest_trash_not_supported",
	"message": "Користувачів не можна перемістити в кошик. Встановіть 'force=true' для видалення.",
	"data": {
		"status": 501
	}
}

Вкажемо і цей параметр

$ curl -X DELETE http://demo.wp-api.org/wp-json/wp/v2/users/2?reassign=1&force=true

Користувач видалений:

{
	"deleted": true,
	"previous": {
		"id": 2,
		"username": "neuser",
		"name": "neuser",
		"first_name": "",
		"last_name": "",
		"email": "[email protected]",
		"url": "",
		"description": "",
		"link": "http://example.com/author/neuser/",
		"locale": "ru_RU",
		"nickname": "neuser",
		"slug": "neuser",
		"Roles": [
			"subscriber"
		],
		"registered_date": "2018-08-31T13:36:18+00:00",
		"capabilities": {
			"read": true,
			"level_0": true,
			"subscriber": true
		},
		"extra_capabilities": {
			"subscriber": true
		},
		"avatar_urls": {
			"24": "http://0.gravatar.com/avatar/3731f606afa8dccc9123bdd4062c4af1?s=24&d=mm&r=g",
			"48": "http://0.gravatar.com/avatar/3731f606afa8dccc9123bdd4062c4af1?s=48&d=mm&r=g",
			"96": "http://0.gravatar.com/avatar/3731f606afa8dccc9123bdd4062c4af1?s=96&d=mm&r=g"
		},
		"meta": []
	}
}




wp/v2/users/me

Маршрут вимагає авторизації в REST.

Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/users/me

GitHub

{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Scope under which the request is made; determines fields present in response.",
                    "type": "string"
                }
            }
        },
        {
            "methods": [
                "POST",
                "PUT",
                "PATCH"
            ],
            "args": {
                "username": {
                    "required": false,
                    "description": "Login name for the user.",
                    "type": "string"
                },
                "name": {
                    "required": false,
                    "description": "Display name for the user.",
                    "type": "string"
                },
                "first_name": {
                    "required": false,
                    "description": "First name for the user.",
                    "type": "string"
                },
                "last_name": {
                    "required": false,
                    "description": "Last name for the user.",
                    "type": "string"
                },
                "email": {
                    "required": false,
                    "description": "The email address for the user.",
                    "type": "string"
                },
                "url": {
                    "required": false,
                    "description": "URL of the user.",
                    "type": "string"
                },
                "description": {
                    "required": false,
                    "description": "Description of the user.",
                    "type": "string"
                },
                "locale": {
                    "required": false,
                    "enum": [
                        "",
                        "en_US"
                    ],
                    "description": "Locale for the user.",
                    "type": "string"
                },
                "nickname": {
                    "required": false,
                    "description": "Nickname for the user.",
                    "type": "string"
                },
                "slug": {
                    "required": false,
                    "description": "An alphanumeric identifier for the user.",
                    "type": "string"
                },
                "Roles": {
                    "required": false,
                    "description": "Roles assigned to the user.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "password": {
                    "required": false,
                    "description": "Password для користувача (включено).",
                    "type": "string"
                },
                "meta": {
                    "required": false,
                    "description": "Meta fields.",
                    "type": "object"
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": {
                "force": {
                    "required": false,
                    "default": false,
                    "description": "Потрібно бути вірним, як користувачі не підтримують trashing.",
                    "type": "boolean"
                },
                "reassign": {
                    "required": true,
                    "description": "Reassign the deleted user's posts and links to this user ID.",
                    "type": "integer"
                }
            }
        }
    ],
    "Schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "user",
        "type": "object",
        "properties": {
            "id": {
                "description": "Unique identifier for the user.",
                "type": "integer",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "username": {
                "description": "Login name for the user.",
                "type": "string",
                "context": [
                    "edit"
                ],
                "required": true
            },
            "name": {
                "description": "Display name for the user.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "first_name": {
                "description": "First name for the user.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "last_name": {
                "description": "Last name for the user.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "email": {
                "description": "The email address for the user.",
                "type": "string",
                "format": "email",
                "context": [
                    "edit"
                ],
                "required": true
            },
            "url": {
                "description": "URL of the user.",
                "type": "string",
                "format": "uri",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "description": {
                "description": "Description of the user.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "link": {
                "description": "Author URL of the user.",
                "type": "string",
                "format": "uri",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "locale": {
                "description": "Locale for the user.",
                "type": "string",
                "enum": [
                    "",
                    "en_US"
                ],
                "context": [
                    "edit"
                ]
            },
            "nickname": {
                "description": "Nickname for the user.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "slug": {
                "description": "An alphanumeric identifier for the user.",
                "type": "string",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ]
            },
            "registered_date": {
                "description": "Registration date for the user.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "Roles": {
                "description": "Roles assigned to the user.",
                "type": "array",
                "items": {
                    "type": "string"
                },
                "context": [
                    "edit"
                ]
            },
            "password": {
                "description": "Password для користувача (включено).",
                "type": "string",
                "context": [],
                "required": true
            },
            "capabilities": {
                "description": "All capabilities assigned to the user.",
                "type": "object",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "extra_capabilities": {
                "description": "Якщо більше можливостей визначено для користувача.",
                "type": "object",
                "context": [
                    "edit"
                ],
                "readonly": true
            },
            "avatar_urls": {
                "description": "Avatar URLs for the user.",
                "type": "object",
                "context": [
                    "embed",
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "24": {
                        "description": "Avatar URL with image size of 24 pixels.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    },
                    "48": {
                        "description": "Avatar URL with image size of 48 pixels.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    },
                    "96": {
                        "description": "Avatar URL with image size of 96 pixels.",
                        "type": "string",
                        "format": "uri",
                        "context": [
                            "embed",
                            "view",
                            "edit"
                        ]
                    }
                }
            },
            "meta": {
                "description": "Meta fields.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    },
    "_links": {
        "self": "https://demo.wp-api.org/wp-json/wp/v2/users/me"
    }
}




Отримання поточного користувача

Маршрут працює також як попередній wp/v2/users/{ID}.

$ curl http://example.com/wp-json/wp/v2/users/me
{
	"id": 1,
	"name": "kama",
	"url": "",
	"description": "",
	"link": "http://example.com/author/kama/",
	"slug": "kama",
	"avatar_urls": {
		"24": "http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=24&d=mm&r=g",
		"48": "http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=48&d=mm&r=g",
		"96": "http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=96&d=mm&r=g"
	},
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "http://example.com/wp-json/wp/v2/users/1"
			}
		],
		"collection": [
			{
				"href": "http://example.com/wp-json/wp/v2/users"
			}
		]
	}
}




Оновлення поточного користувача

Див. маршрут wp/v2/users/{ID}.




Видалення поточного користувача

Див. маршрут wp/v2/users/{ID}.




/wp/v2/users/{ID}/application-passwords
/wp/v2/users/me/application-passwords

Запит OPTIONS до маршруту поверне повний опис цього маршруту.

OPTIONS http://demo.wp-api.org/wp-json/wp/v2/users/{ID}/application-passwords

GitHub

{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "POST",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "context": {
                    "description": "Рамки, в яких зроблено запит, визначають поля відповіді.",
                    "type": "string",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "default": "view",
                    "required": false
                }
            }
        },
        {
            "methods": [
                "POST"
            ],
            "args": {
                "app_id": {
                    "description": "UUID, що надається програмою для унікальної ідентифікації. Рекомендується використовувати UUID v5 з простором імен URL або DNS.",
                    "type": "string",
                    "format": "uuid",
                    "required": false
                },
                "name": {
                    "description": "Назва пароля програми.",
                    "type": "string",
                    "required": true
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": []
        }
    ],
    "schema": {...}
}




Перегляд Паролей додатків користувача

Отримує всі паролі програми користувача. Див. WP_Application_Passwords::get_user_application_passwords() .

Вид запиту

GET /wp/v2/users/{id}/application-passwords

Параметри запиту

$context
(рядок)
Рамки у яких зроблено запит, визначають поля відповіді. Можливі значення:
view,
embed,
edit.

Типово: view

Приклад запиту

GET https://wp-doc.com/api/wp/v2/users/1/application-passwords

Відповідь:

[
	{
		"uuid": "e76548d7-0274-438c-b04a-904301bda4d32",
		"app_id": "",
		"name": "Тест",
		"created": "2020-12-23T13:47:55",
		"last_used": "2020-12-23T13:48:55",
		"last_ip": "89.149.201.210",
		"_links": {
			"self": [
				{
					"href": "https://wp-doc.com/api/wp/v2/users/1/application-passwords/e76548d7-0274-438c-b04a-904301bda4d32"
				}
			]
		}
	},
	{
		"uuid": "e76548d7-0274-438c-b04a-987301bda4d32",
		"app_id": "",
		"name": "Test2",
		"created": "2020-12-23T13:49:08",
		"last_used": null,
		"last_ip": null,
		"_links": {
			"self": [
				{
					"href": "https://wp-doc.com/api/wp/v2/users/1/application-passwords/e76548d7-0274-438c-b04a-987301bda4d32"
				}
			]
		}
	}
]




Створення Пароля програми

Створює пароль програми. Див. WP_Application_Passwords::create_new_application_password() .

Вид запиту

Доступ: вимагає авторизації.

POST /wp/v2/users/{id}/application-passwords

Параметри запиту

$name
(рядок) (обов’язковий)
Назва пароля програми.
$app_id
(рядок)
UUID надається програмою для унікальної ідентифікації. Рекомендується використовувати UUID v5 з простором імен URL або DNS.

За замовчуванням: ”

Приклад запиту

POST https://wp-doc.com/api/wp/v2/users/1/application-passwords?name=Test2

Відповідь:

{
	"uuid": "c9e5ce07-0ccb-4a2e-963a-feda93cf8bab",
	"app_id": "",
	"name": "Test2",
	"created": "2020-12-23T12:41:38",
	"last_used": null,
	"last_ip": null,
	"password": "pNFX LyvZ gz75 tiks UZiT xlSL",
	"_links": {
		"self": [
			{
				"href": "https://wp-doc.com/api/wp/v2/users/1/application-passwords/c9e5ce07-0ccb-4a2e-963a-feda93cf8bab"
			}
		]
	}
}




Видалення Паролей програми користувача

Видаляє всі паролі пропозицій користувача. Див. WP_Application_Passwords::delete_all_application_passwords() .

Вид запиту

Доступ: вимагає авторизації.

DELETE /wp-json/wp/v2/users/1/application-passwords

Параметри запиту

Параметрів немає.




/wp/v2/users/{ID}/application-passwords/uuid
/wp/v2/users/me/application-passwords/uuid

Ці ендпоінти такі ж, як попередні, тільки працюють з конкретним паролем програми.

Запит OPTIONS до маршруту поверне повний опис цього маршруту.

OPTIONS http://demo.wp-api.org/wp-json/wp/v2/users/{ID}/application-passwords/{uuid}

GitHub

{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "context": {
                    "description": "Рамки, в яких зроблено запит, визначають поля відповіді.",
                    "type": "string",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "default": "view",
                    "required": false
                }
            }
        },
        {
            "methods": [
                "POST",
                "PUT",
                "PATCH"
            ],
            "args": {
                "app_id": {
                    "description": "UUID, що надається програмою для унікальної ідентифікації. Рекомендується використовувати UUID v5 з простором імен URL або DNS.",
                    "type": "string",
                    "format": "uuid",
                    "required": false
                },
                "name": {
                    "description": "Назва пароля програми.",
                    "type": "string",
                    "required": false
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": []
        }
    ],
    "schema": {...}
}




Перегляд Пароля програми

Аналогічно запит GET /wp/v2/users/{ID}/application-passwords .

Вид запиту

GET /wp/v2/users/{ID}/application-passwords/{uuid}

приклад

GET https://example.com/wp-json/wp/v2/users/1/application-passwords/e79943d8-0367-287c-b07a-90001bda4d32

Відповідь:

{
	"uuid": "e79943d8-0367-287c-b07a-90001bda4d32",
	"app_id": "",
	"name": "Test2",
	"created": "2020-12-23T13:49:08",
	"last_used": null,
	"last_ip": null,
	"_links": {
		"self": [
			{
				"href": "https://example.com/api/wp/v2/users/1/application-passwords/e79943d8-0367-287c-b07a-90001bda4d32"
			}
		]
	}
}




Додавання Пароля програми

Аналогічно запиту POST /wp/v2/users/{ID}/application-passwords .

Вид запиту

POST|PUT|PATCH /wp/v2/users/{ID}/application-passwords/{uuid}

приклад

POST https://example.com/wp-json/wp/v2/users/1/application-passwords/e77743d8-0367-287c-b07a-90001bda4d32




Видалення Пароля програми

Аналогічно запит DELETE /wp/v2/users/{ID}/application-passwords .

Вид запиту

DELETE /wp/v2/users/{ID}/application-passwords/{uuid}

приклад

DELETE https://example.com/wp-json/wp/v2/users/1/application-passwords/e78743d8-0367-287c-b07a-90001bda4d32

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *