Post

Внимание! Этот API устарел начиная с WS 0.95.

Post является устаревшим классом. Он сохранён для поддержки старого кода, но не должен использоваться в новой разработке.

Единой полной замены у класса нет:

  • для чтения опубликованных записей используйте PostManager
  • для данных записи текущего запроса используйте PageData
  • для устаревших операций изменения и произвольных SQL-запросов прямой высокоуровневой замены нет

Чтение опубликованных записей

Вместо методов получения публичных записей используйте PostManager:

php
$postManager = new PostManager('news');

$posts = $postManager->getPublishedList(
    limit: 10
);

Получение записи по URL:

php
$post = $postManager->getPublishedByUrl('release-notes');

if ($post === null) {
    return;
}

Получение нескольких записей по идентификаторам:

php
$posts = $postManager->getPublishedByIds([
    15,
    27,
]);

PostManager проверяет статус и дату публикации, ограничивает сортировку и не принимает произвольные SQL-условия.

Данные текущей записи

Если CMS уже определила запись текущего запроса, используйте PageData:

php
$postId = PageData::getId();
$title = PageData::getTitle();
$content = PageData::getContent();
$postType = PageData::getPostType();

Сохранённый API

Методы класса остаются доступными для поддержки старого кода.

Получение записей

Метод Назначение
getPost() Получает запись по идентификатору и типу.
getAllPost() Получает список независимо от статуса публикации.
getPublishPost() Получает опубликованные записи.
getPostQuery() Выполняет выборку по SQL-условию.
getPostQueryUnion() Объединяет выборку нескольких типов.
getPublishPostUnion() Получает опубликованные записи нескольких типов.
getPublishPostCategory() Получает опубликованные записи с активной локальной категорией.

Подсчёт записей

Метод Назначение
postCount() Подсчитывает записи одного типа.
postCountUnion() Подсчитывает записи нескольких типов.

Изменение записей

Метод Назначение
addPost() Добавляет запись из SQL-фрагмента.
updatePost() Обновляет запись из SQL-фрагмента.
updateMeta() Изменяет одно метаполе.
updateMetaAll() Полностью заменяет метаданные.
updateCategory() Изменяет одну локальную категорию.
updateCategoryAll() Полностью заменяет локальные категории.

Формат результатов legacy API

Списочные методы класса Post используют индексы начиная с 1.

Методы преобразуют структурированные поля в массивы:

  • meta
  • category
  • global_meta
  • global_category
  • comment

Записи также могут получать поле post_type. Метод getPost() дополнительно получает логин автора в поле author_login.

Формат результатов отличается от PostManager, списки которого индексируются начиная с 0.

Ограничения

  • класс использует устаревший объект базы данных
  • типы записей и условия подставляются в SQL-запросы строками
  • некоторые методы принимают готовые SQL-фрагменты
  • не передавайте методам данные, полученные от пользователя
  • методы изменения не используют актуальный безопасный API базы данных
  • часть методов может вернуть пустой массив или null без единого строгого формата
  • getPublishPostCategory() не использует переданный ключ категории в условии выборки
  • для нового кода используйте актуальные классы CMS