Я пытаюсь создать сообщение через WP API и использую Python для отправки http-запросов. Пример тела HTTP-запроса будет выглядеть так:
body = json.dumps(dict(
slug='test',
status='publish',
title='test',
excerpt='test',
content='test',
author=1,
comment_status='open',
ping_status='open',
categories=[1],
meta={
'_links_to': 'https://google.com',
'_knawatfibu_url': 'https://some-image.jpg'
}
))
А сама отправка выглядит так:
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + base64.b64encode(f'{settings.WP_LOGIN}:{settings.WP_PASS}'.encode()).decode()
}
response = requests.post(settings.WP_HOST + '/wp-json/wp/v2/posts', json=data, headers=headers)
Хорошая новость заключается в том, что он создает сообщение.
Но он не устанавливает метаполя, из-за чего некоторые плагины не оказывают никакого эффекта. Как мне обеспечить настройку метаполей через API?
Я слышал, что мне нужно предоставлять определенные метаполя через код PHP. Но как мне это сделать и, самое главное, где мне это сделать?
РЕДАКТИРОВАТЬ:
Я пытался добавить этот фрагмент PHP-кода в functions.php и думал, что он отображает все метаполя при вызове API GET, но установка этих полей по-прежнему невозможна. >
add_action( 'rest_api_init', 'create_api_posts_meta_field' );
function create_api_posts_meta_field() {
// register_rest_field ( 'name-of-post-type', 'name-of-field-to-return', array-of-callbacks-and-schema() )
register_rest_field( 'post', 'meta', array(
'get_callback' => 'get_post_meta_for_api',
'schema' => null,
)
);
}
function get_post_meta_for_api( $object ) {
//get the id of the post object array
$post_id = $object['id'];
//return the post meta
return get_post_meta( $post_id );
}
Подробнее здесь: https://stackoverflow.com/questions/567 ... meta-field
Wordpress API – метаполе сообщения ⇐ Php
Кемеровские программисты php общаются здесь
1729141408
Anonymous
Я пытаюсь создать сообщение через WP API и использую Python для отправки http-запросов. Пример тела HTTP-запроса будет выглядеть так:
body = json.dumps(dict(
slug='test',
status='publish',
title='test',
excerpt='test',
content='test',
author=1,
comment_status='open',
ping_status='open',
categories=[1],
meta={
'_links_to': 'https://google.com',
'_knawatfibu_url': 'https://some-image.jpg'
}
))
А сама отправка выглядит так:
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + base64.b64encode(f'{settings.WP_LOGIN}:{settings.WP_PASS}'.encode()).decode()
}
response = requests.post(settings.WP_HOST + '/wp-json/wp/v2/posts', json=data, headers=headers)
Хорошая новость заключается в том, что он создает сообщение.
Но он не устанавливает метаполя, из-за чего некоторые плагины не оказывают никакого эффекта. Как мне обеспечить настройку метаполей через API?
Я слышал, что мне нужно предоставлять определенные метаполя через код PHP. Но как мне это сделать и, самое главное, где мне это сделать?
[b]РЕДАКТИРОВАТЬ:[/b]
Я пытался добавить этот фрагмент PHP-кода в functions.php и думал, что он отображает все метаполя при вызове API GET, но установка этих полей по-прежнему невозможна. >
add_action( 'rest_api_init', 'create_api_posts_meta_field' );
function create_api_posts_meta_field() {
// register_rest_field ( 'name-of-post-type', 'name-of-field-to-return', array-of-callbacks-and-schema() )
register_rest_field( 'post', 'meta', array(
'get_callback' => 'get_post_meta_for_api',
'schema' => null,
)
);
}
function get_post_meta_for_api( $object ) {
//get the id of the post object array
$post_id = $object['id'];
//return the post meta
return get_post_meta( $post_id );
}
Подробнее здесь: [url]https://stackoverflow.com/questions/56743795/wordpress-api-post-meta-field[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия