Intereting Posts
Как отобразить все категории, в которых находится сообщение Получение переменной экземпляра в области «wp_enqueue_scripts» Добавить редактор TinyMCE в текстовое окно windowManager Как вставить текст на все страницы и сообщения до или после определенных мест? Значение datepicker в mysql Отправлять электронную почту при обновлении портфолио Если хакер заглянул во все php-файл, может ли он навредить мне? Неустранимая ошибка post.php help :( Проверьте, существует ли специальное настраиваемое поле? Как запрашивать сообщения (в иерархическом пользовательском типе сообщений), в которых есть дети? Автозаполнение для полей ввода таксономии на лицевой стороне Перенос всего сайта WordPress из одного домена в новый домен и базу данных Как вы навсегда удаляете боковые панели Импорт WordPress. xml-файл при новой установке Помогите! Поверните данные ссылки php в url ИЛИ скройте ссылку редактирования в post admin или скройте черновики для всех пользователей, кроме admin?

API-интерфейс WP JSON meta_query не работает

В приведенном ниже примере кода я использую заголовок (имя) в качестве поля для хранения адреса электронной почты, когда пароль находится в настраиваемом поле. Следующий запрос приведет к правильному пользователю, но не имеет значения, совпадает ли пароль или нет. Я часами пробирался, и это лучшее, что у меня есть, чего не хватает?

$posts = $json_api->introspector->get_posts(array( 'post_type' => 'custom_user', 'name' => 'user@mail.com', 'meta_query' => array( 'key' => 'password', 'value' => 'pass123' ) )); 

Кроме того, я использую плагин wp json, расположенный здесь

Solutions Collecting From Web of "API-интерфейс WP JSON meta_query не работает"

За комментарий от @ialocin я переключился с WP JSON API на WP REST API. С остальными api существует гораздо меньше документации, но она настраивается с использованием собственных функций wordpress. Кроме того, в нем есть отличный github-плагин, позволяющий использовать его с помощью ACF .

Во всяком случае, documentatino для настройки wp rest api ужасен, поэтому я собираюсь показать вам, что я сделал с wp 4.2.0 + wp rest api 1.2.1

Прежде всего, нужно добавить действие к плагину, чтобы оно подхватило ваши новые действия для отдыха. Сделайте это в wp-content / plugins / [rest-api-folder] /plugins.php. Я лично добавил все это в нижней части файла.

 require_once( dirname( __FILE__ ) . '/lib/class-myplugin-api-mytype.php' ); function myplugin_api_init() { global $myplugin_api_mytype; $myplugin_api_mytype = new MyPlugin_API_MyType(); add_filter( 'json_endpoints', array( $myplugin_api_mytype, 'register_routes' ) ); } add_action( 'wp_json_server_before_serve', 'myplugin_api_init' ); 

Теперь пришло время добавить свой новый класс, в котором находится мясо. Создайте файл wp-content / plugins / [rest-api-folder] /lib/class-myplugin-api-mytype.php и поместите в него:

 <?php class MyPlugin_API_MyType { public function register_routes( $routes ) { $routes['/test'] = array( array( array( $this, 'test'), WP_JSON_Server::READABLE ), ); // $routes['/myplugin/mytypeitems'] = array( // array( array( $this, 'get_posts'), WP_JSON_Server::READABLE ), // array( array( $this, 'new_post'), WP_JSON_Server::CREATABLE | WP_JSON_Server::ACCEPT_JSON ), // ); // $routes['/myplugin/mytypeitems/(?P<id>\d+)'] = array( // array( array( $this, 'get_post'), WP_JSON_Server::READABLE ), // array( array( $this, 'edit_post'), WP_JSON_Server::EDITABLE | WP_JSON_Server::ACCEPT_JSON ), // array( array( $this, 'delete_post'), WP_JSON_Server::DELETABLE ), // ); // Add more custom routes here return $routes; } public function test( $filter = array(), $context = 'view', $type = 'post', $page = 1 ) { return array("status" => "ok", "message" => "it worked!"); } } ?> 

Теперь перейдите на свою страницу worpress с помощью «/ wp-json / test» в конце URL-адреса (без запроса), и вы должны увидеть

 {"status":"ok","message":"it worked!"} 

Виола! Также вы можете посмотреть /libs/class-wp-json-posts.php и механизмы копирования там, где это необходимо. Надеюсь, это все-таки поможет кому-то, чтобы понять это!