Изображение категории Wordpress в ответе категорий с использованием расширенных настраиваемых полей, возвращающих ноль - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь добавить изображение поля изображения категории в ответ категории с использованием расширенного настраиваемого поля.

Но поле возвращает ноль, вот мой код.

function addCategoryImage(){
    register_rest_field('category', 'categoryImage', array(
        'taxonomy' => 'category',
        'get_callback' => function() {
            $category = get_the_category();
            return get_field('category_image', 'category_' . $category_id);
        }

    ));
};

add_action('rest_api_init', 'addCategoryImage');

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

После некоторых исследований я нашел точный ответ, который искал. Функции обратного вызова имеют эти аргументы.

    'get_callback' => function ( $object, $field_name, $request, $object_type ) {
    // ...
}

Таким образом, я получаю $ объект для каждой категории, из которого я могу получить термин id. Вот обновленный код.

function addCategoryImage(){
    register_rest_field('category', 'categoryImage', array(
        'get_callback' => function($cat) {
            return get_field('category_image', 'category_' . $cat['id']);
        }

    ));
};
add_action('rest_api_init', 'addCategoryImage');
0 голосов
/ 14 февраля 2020

Поле get_field ('category_image', 'category_'. $ Category_id); Функция не будет ничего возвращать, если category_id равен нулю, поэтому попробуйте вернуть $ category и проверить, возвращает ли доза что-нибудь или нет, если это так, вам все равно нужно получить term_id, если сообщение может иметь больше, чем категория, тогда вам нужно укажите термин slug для получения идентификатора.

Общий совет: при работе с API или внутренней функцией всегда распечатывайте все переменные, которые вы используете, чтобы проверить, имеют ли они какое-либо значение в первую очередь. Не пишите полный код и проведите заключительный тест, потому что, если есть проблема, будет трудно определить причину.

Проверьте более подробную информацию здесь: https://www.advancedcustomfields.com/resources/adding-fields-taxonomy-term/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...