@pornoakter

Как можно добавить в пост тайп свое поле через functions php?

get_posts() генерирует пост массивом данных. Как я могу в этот массив добавить дополнительную информацию?
{ 
["ID"]=> int(40827) 
["post_author"]=> string(5) "21740" 
["post_date"]=> string(19) "2022-02-15 16:45:12"
["мое_поле"]=> string(19) "абвгдеёжз"
}
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Immortal_pony
@Immortal_pony
update_post_meta для добавления любой информации в метаданных.
Например:
$articleId = 40827; // id поста из твоего примера
$metaName = "my_field"; // на кириллице всё же не советую называть
update_post_meta($articleId, $metaName, "абвгдеёжз"); // добавляем метаданные


Далее, get_posts возвращает массив объектов и, если в качестве свойств объекта использовать имя вашего поля, то он найдёт это поле в метаданных и отдаст вам его значение. Отмечу что через var_dump этого не будет виджно, потому что такое поведение организовано через магический метод __get();
Также, мы всегда можете получить данные в помощью get_post_meta;

$articleId = 40827; // id поста из твоего примера
$articles = get_posts(['include'=>[$articleId]]); // для примера получим только интересующий нас пост
foreach ($articles as $article) {
    echo $article->my_field; // так будет работать
    echo get_post_meta($article->ID, "my_field", true); // так тоже будет работать
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
san_jorich
@san_jorich
Творческий кодер
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы