WP_Term

Класс для реализации объекта WP_Term
Класс WordPress
INT 4.4.0
WordPress Icon

Описание класса

Класс «WP_Term» является ядром для реализации объекта WP_Term в WordPress. Он представляет собой термин (категорию или метку) в системе таксономии WordPress. Класс содержит методы для работы с терминами, такие как получение, фильтрация и преобразование объекта.

Методы

  • __construct — Конструктор класса WP_Term.
  • __get — Геттер для получения значения свойства объекта.
  • filter — Очищает поля термина в соответствии с указанным типом фильтрации.
  • get_instance — Получает экземпляр объекта WP_Term.
  • to_array — Преобразует объект в массив.

Метод __construct является конструктором класса WP_Term. Он инициализирует новый объект WP_Term и устанавливает его свойства.

Метод __get является геттером для получения значения свойства объекта WP_Term. Он позволяет получить значение свойства, используя синтаксис доступа к свойствам объекта.

Метод filter используется для очистки полей термина в соответствии с указанным типом фильтрации. Он принимает тип фильтрации в качестве аргумента и применяет соответствующий фильтр к полям термина.

Метод get_instance используется для получения экземпляра объекта WP_Term. Он принимает идентификатор термина в качестве аргумента и возвращает объект WP_Term с указанным идентификатором.

Метод to_array используется для преобразования объекта WP_Term в массив. Он возвращает массив, содержащий свойства объекта WP_Term.

Методы

filter()

Метод filter() класса WP_Term используется для санитизации полей термина в соответствии с указанным типом фильтра.

WP_Term::filter( string $filter )

Метод filter() принимает один обязательный параметр:

  • $filter (string) — Тип фильтра. Принимает значения: ‘edit’, ‘db’, ‘display’, ‘attribute’, ‘js’, ‘rss’ или ‘raw’.

$filter (string) — Обязательный. Контекст фильтра. Принимает значения: ‘edit’, ‘db’, ‘display’, ‘attribute’, ‘js’, ‘rss’ или ‘raw’.

<?php
/**
 * Пример использования метода filter() класса WP_Term
 *
 * @param string $filter Тип фильтра. Принимает значения: 'edit', 'db', 'display', 'attribute', 'js', 'rss' или 'raw'.
 * @return string Санитизированное значение поля термина.
 */
$filter = 'edit';
$term = new WP_Term();
$filtered_value = $term->filter( $filter );
?>

get_instance()

Метод get_instance() класса WP_Term используется для получения экземпляра объекта WP_Term.

WP_Term::get_instance( int $term_id, string $taxonomy = null )

Метод get_instance() принимает два параметра:

  • $term_id (обязательный) — идентификатор термина.
  • $taxonomy (необязательный) — ограничивает поиск только терминами, соответствующими указанной таксономии. По умолчанию: null.

$term_id (int) — Обязательный. Идентификатор термина.

$taxonomy (string) — Необязательный. Ограничивает поиск только терминами, соответствующими указанной таксономии. Используется для разрешения потенциально общих терминов. По умолчанию: null.

Метод get_instance() возвращает объект WP_Term, если термин найден. Если $term_id используется в нескольких таксономиях и недостаточно данных для определения, какой термин требуется, возвращается объект WP_Error. В случае других ошибок возвращается false.

<?php
// Получение экземпляра объекта WP_Term с идентификатором 42
$term = WP_Term::get_instance( 42 );
if ( ! is_wp_error( $term ) ) {
    // Термин найден
    // Дальнейшие действия с объектом $term
} else {
    // Ошибка при получении термина
    $error_message = $term->get_error_message();
    // Обработка ошибки
}
?>

to_array()

Метод to_array() является частью класса WP_Term и используется для преобразования объекта в массив.

Метод выполняет преобразование объекта WP_Term в массив, что позволяет получить доступ к свойствам объекта в виде элементов массива.

WP_Term::to_array(): array

Данный код представляет собой вызов метода to_array() класса WP_Term и возвращает массив.

Метод to_array() не принимает никаких аргументов.

Преобразование объекта в массив осуществляется путем вызова метода to_array() на объекте WP_Term.

Метод to_array() возвращает массив, представляющий объект WP_Term в виде массива.

__construct()

Метод «__construct()» является конструктором класса «WP_Term». Он вызывается при создании нового объекта WP_Term и выполняет необходимую инициализацию.

WP_Term::__construct( WP_Term|object $term )

Конструктор принимает один обязательный параметр — объект WP_Term или объект, совместимый с WP_Term. Он используется для создания нового объекта WP_Term.

$term (обязательный): Объект WP_Term или объект, совместимый с WP_Term. Представляет термин, для которого создается объект WP_Term.

<?php
$term = new WP_Term( $term_object );
?>

В приведенном выше примере создается новый объект WP_Term с использованием объекта $term_object.

__get()

Метод «__get()» класса «WP_Term» является геттером (getter) и используется для получения значения свойства объекта WP_Term.

WP_Term::__get( string $key ): mixed

Метод «__get()» принимает один обязательный параметр:

  • $key (string) — Название свойства, значение которого нужно получить.

Метод возвращает значение свойства объекта WP_Term, указанного в параметре $key.

<?php
// Создаем объект WP_Term
$term = new WP_Term();
// Получаем значение свойства 'name' объекта $term
$name = $term->__get('name');
// Получаем значение свойства 'taxonomy' объекта $term
$taxonomy = $term->__get('taxonomy');
?>

В данном примере мы создаем объект WP_Term и используем метод «__get()» для получения значений свойств ‘name’ и ‘taxonomy’ объекта $term.

$key (string) — Обязательный параметр, указывающий на свойство объекта WP_Term, значение которого нужно получить.

Метод «__get()» возвращает значение свойства объекта WP_Term, указанного в параметре $key. Тип возвращаемого значения может быть любым.

Примеры использования

Создание экземпляра WP_Term


// Создание экземпляра WP_Term с помощью конструктора
$term = new WP_Term(123, 'category');

В данном примере создается экземпляр класса WP_Term с идентификатором 123 и таксономией ‘category’. Этот объект представляет собой термин, который используется в WordPress для категорий, меток и других таксономий.

Получение значения свойства WP_Term


// Получение значения свойства name
$name = $term->name;

В данном примере получается значение свойства name объекта WP_Term. Свойство name содержит название термина.

Преобразование объекта в массив


// Преобразование объекта WP_Term в массив
$array = $term->to_array();

В данном примере объект WP_Term преобразуется в массив с помощью метода to_array(). Это может быть полезно, если вам нужно передать данные термина в другую функцию или метод, которая ожидает массив в качестве аргумента.

Санитизация полей термина


// Санитизация поля description
$description = $term->filter('description');

В данном примере с помощью метода filter() производится санитизация значения поля description термина. Метод filter() принимает тип фильтрации в качестве аргумента и возвращает отфильтрованное значение.

Получение экземпляра WP_Term


// Получение экземпляра WP_Term по идентификатору
$term = WP_Term::get_instance(123, 'category');

В данном примере с помощью статического метода get_instance() получается экземпляр класса WP_Term по заданному идентификатору и таксономии. Этот метод может быть использован для получения объекта WP_Term без явного создания экземпляра с помощью конструктора.

Вопросы и ответы

Как получить все термины определенной таксономии?

Для получения всех терминов определенной таксономии в WordPress можно использовать метод get_terms() класса WP_Term. Этот метод принимает несколько параметров, включая таксономию, по которой нужно получить термины.


$terms = get_terms( array(
    'taxonomy' => 'category',
) );
foreach ( $terms as $term ) {
    echo $term->name;
}

Как добавить новый термин в таксономию?

Для добавления нового термина в таксономию в WordPress используется метод wp_insert_term() класса WP_Term. Этот метод принимает параметры, такие как название термина и таксономия, к которой он должен быть добавлен.


$new_term = wp_insert_term(
    'New Term',
    'category'
);
if ( ! is_wp_error( $new_term ) ) {
    echo 'Term added successfully.';
}

Как обновить существующий термин в таксономии?

Для обновления существующего термина в таксономии в WordPress можно использовать метод wp_update_term() класса WP_Term. Этот метод принимает параметры, такие как ID термина и новые значения для его полей.


$term_id = 42;
$updated_term = wp_update_term(
    $term_id,
    'category',
    array(
        'name' => 'Updated Term',
    )
);
if ( ! is_wp_error( $updated_term ) ) {
    echo 'Term updated successfully.';
}

Как удалить термин из таксономии?

Для удаления термина из таксономии в WordPress используется метод wp_delete_term(). Этот метод принимает два обязательных параметра: ID термина и таксономию, к которой он принадлежит.


$term_id = 42;
$taxonomy = 'category';
$result = wp_delete_term( $term_id, $taxonomy );

Как получить список постов, связанных с определенным термином?

Для получения списка постов, связанных с определенным термином, используется метод get_posts(). Этот метод принимает массив параметров, в котором можно указать таксономию и термин.


$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',
            'terms'    => 'term-slug',
        ),
    ),
);
$posts = get_posts( $args );

Как получить список терминов, связанных с определенным постом?

Для получения списка терминов, связанных с определенным постом, используется функция wp_get_post_terms(). Эта функция принимает два обязательных параметра: ID поста и таксономию.


$post_id = 123;
$taxonomy = 'category';
$terms = wp_get_post_terms( $post_id, $taxonomy );

Как получить список всех терминов в определенной таксономии?

Для получения списка всех терминов в определенной таксономии в WordPress можно использовать метод get_terms(). Этот метод принимает несколько параметров, включая taxonomy, который указывает на нужную таксономию.


$terms = get_terms( array(
    'taxonomy' => 'category',
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<li>' . $term->name . '</li>';
    }
}

Как получить родительский термин для определенного термина?

Для получения родительского термина для определенного термина в WordPress можно использовать метод get_term() для получения объекта термина, а затем обратиться к его свойству parent.


$term = get_term( $term_id, 'category' );
if ( ! is_wp_error( $term ) && $term->parent != 0 ) {
    $parent_term = get_term( $term->parent, 'category' );
    echo $parent_term->name;
}

Как получить дочерние термины для определенного термина?

Для получения дочерних терминов для определенного термина в WordPress можно использовать метод get_terms() с параметром child_of, указывающим ID родительского термина.


$terms = get_terms( array(
    'taxonomy' => 'category',
    'child_of' => $parent_term_id,
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<li>' . $term->name . '</li>';
    }
}

Класс WP_Term в WordPress является основным классом, используемым для реализации объекта термина. Он предоставляет методы для получения информации о термине, его родителях и дочерних терминах. Методы класса позволяют получить список всех терминов в определенной таксономии, родительский термин для определенного термина и дочерние термины для определенного термина. Это полезные методы для разработчиков WordPress, которые работают с таксономиями и терминами.

Обсуждение