Регистрация таксономии для типа объекта в WordPress

# Функция register_taxonomy_for_object_type()

Функция register_taxonomy_for_object_type() позволяет добавить уже зарегистрированную таксономию к определенному типу объекта в WordPress.

## Основная информация

- **Версия:** WP 3.0.0
- **Среднее время выполнения:** 
  - 1 раз — 0.000001 сек (скорость света)
  - 50000 раз — 0.03 сек (скорость света)
- **PHP версия:** 7.1.11, WP 4.9.8

## Хуки функции

- **registered_taxonomy_for_object_type**

## Возвращаемое значение

- true — если все прошло успешно.
- false — если возникла ошибка.

## Использование

```php
register_taxonomy_for_object_type( $taxonomy, $object_type );
  • $taxonomy (string) — название таксономии.
  • $object_type (string) — название типа объекта.

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

Пример 1

Используя следующий код, мы можем привязать метки (tags) к статическим страницам WordPress.

add_action( 'init', 'post_tag_for_pages' );

function post_tag_for_pages() {
    register_taxonomy_for_object_type( 'post_tag', 'page' );
}

Важно не забыть использовать хук init, чтобы этот код сработал. Если не использовать хук, то таксономия или пользовательский тип записи (CPT), который вы пытаетесь использовать, возможно, еще не был создан.

В итоге, в админке, при редактировании страниц, у нас будет блок меток, как в записях:

Пример блока меток

Примечания

  • Глобальная переменная: $wp_taxonomies. Здесь хранятся зарегистрированные таксономии.

Изменения в версии

  • С 3.0.0 — функция была введена.

Исходный код функции

function register_taxonomy_for_object_type( $taxonomy, $object_type ) {
    global $wp_taxonomies;

    if ( ! isset( $wp_taxonomies[ $taxonomy ] ) ) {
        return false;
    }

    if ( ! get_post_type_object( $object_type ) ) {
        return false;
    }

    if ( ! in_array( $object_type, $wp_taxonomies[ $taxonomy ]->object_type, true ) ) {
        $wp_taxonomies[ $taxonomy ]->object_type[] = $object_type;
    }

    // Убираем пустые значения.
    $wp_taxonomies[ $taxonomy ]->object_type = array_filter( $wp_taxonomies[ $taxonomy ]->object_type );

    /**
     * Срабатывает после регистрации таксономии для типа объекта.
     *
     * @param string $taxonomy    Название таксономии.
     * @param string $object_type Название типа объекта.
     */
    do_action( 'registered_taxonomy_for_object_type', $taxonomy, $object_type );

    return true;
}

Связанные функции

Хотите узнать больше о таксономиях, таких как категории и метки? Вот некоторые связанные функции:

  • edit_term_link()
  • get_edit_term_link()
  • get_taxonomies()
  • get_taxonomy()
  • get_term()
  • get_term_by()
  • get_term_children()
  • get_term_field()
  • get_term_link()
  • get_terms()
  • is_taxonomy_hierarchical()
  • register_taxonomy()
  • sanitize_term()
  • sanitize_term_field()
  • single_term_title()
  • taxonomy_exists()
  • term_description()
  • term_exists()
  • term_is_ancestor_of()
  • the_terms()
  • unregister_taxonomy()
  • unregister_taxonomy_for_object_type()
  • wp_count_terms()
  • wp_delete_term()
  • wp_get_term_taxonomy_parent_id()
  • wp_insert_term()
  • wp_update_term()
  • wp_update_term_count()

Эти функции помогут вам лучше работать с таксономиями в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *