Одна и та же таксономия, несколько типов сообщений: подробное руководство с примерами кода

Метод 1: использование функции Register_taxonomy()
Пример кода:

function custom_taxonomy() {
  $args = array(
    'label' => 'Custom Taxonomy',
    'rewrite' => array( 'slug' => 'custom-taxonomy' ),
    'hierarchical' => true,
  );
  register_taxonomy( 'custom_taxonomy', array( 'post', 'page', 'custom_post_type' ), $args );
}
add_action( 'init', 'custom_taxonomy' );

Объяснение:
Передавая массив типов сообщений в функцию «register_taxonomy()», вы можете связать несколько типов сообщений с пользовательской таксономией. В этом примере таксономия «custom_taxonomy» связана с типами сообщений «post», «page» и «custom_post_type».

Метод 2: использование аргумента «таксономии» в функции «register_post_type()»
Пример кода:

function custom_post_type() {
  $args = array(
    'label' => 'Custom Post Type',
    'taxonomies' => array( 'category', 'post_tag', 'custom_taxonomy' ),
    // Other arguments...
  );
  register_post_type( 'custom_post_type', $args );
}
add_action( 'init', 'custom_post_type' );

Объяснение:
Включив аргумент «таксономии» в функцию «register_post_type()», вы можете указать таксономии, связанные с произвольным типом публикации. В этом примере «custom_post_type» связан со встроенными таксономиями «category» и «post_tag», а также с пользовательской таксономией «custom_taxonomy».

Метод 3: использование функции «register_taxonomy_for_object_type()»
Пример кода:

function custom_taxonomy_for_post_type() {
  register_taxonomy_for_object_type( 'custom_taxonomy', 'post' );
  register_taxonomy_for_object_type( 'custom_taxonomy', 'page' );
  register_taxonomy_for_object_type( 'custom_taxonomy', 'custom_post_type' );
}
add_action( 'init', 'custom_taxonomy_for_post_type' );

Объяснение:
Функция «register_taxonomy_for_object_type()» позволяет вам вручную связать таксономию с определенным типом публикации. Вызвав эту функцию для каждого типа публикации, вы можете связать таксономию «custom_taxonomy» с «post», «page» и «custom_post_type».

Метод 4. Использование специального плагина
Пример кода:

/*
Plugin Name: Custom Taxonomy Post Types
*/
function custom_taxonomy_post_types() {
  register_taxonomy_for_object_type( 'custom_taxonomy', 'post' );
  register_taxonomy_for_object_type( 'custom_taxonomy', 'page' );
  register_taxonomy_for_object_type( 'custom_taxonomy', 'custom_post_type' );
}
add_action( 'init', 'custom_taxonomy_post_types' );

Объяснение:
Создайте собственный плагин и добавьте необходимый код, чтобы связать таксономию с несколькими типами сообщений. При активации этого плагина таксономия «custom_taxonomy» будет связана с «post», «page» и «custom_post_type».

В этой статье мы рассмотрели различные методы сопоставления одной и той же таксономии с несколькими типами записей в WordPress. Используя предоставленные примеры кода, вы можете легко реализовать эту функцию в своих проектах WordPress. При выборе подходящего метода не забудьте учитывать конкретные требования вашего проекта.