beget banner 468x60beget banner 728x90beget banner 930x180flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180kwork banner 468x60kwork banner 728x90kwork banner 930x180

Как сделать функцию обратную wp_set_post_terms(), чтобы пост открепился от нужной таксономии?

Функция wp_set_post_terms() позволяет задавать термины для поста в определенной таксономии. Чтобы открепить пост от всех терминов конкретной таксономии, можно воспользоваться этой же функцией, передав пустой массив как список терминов.

Пример:

wp_set_post_terms( $post_id, [], 'taxonomy_name' );

Здесь:

  • $post_id — ID поста, который нужно открепить от таксономии.
  • taxonomy_name — имя таксономии, от которой вы хотите открепить пост.

Подробное объяснение

Когда вы передаёте пустой массив в wp_set_post_terms(), WordPress удаляет все связи между постом и указанной таксономией. Это работает для любых зарегистрированных таксономий (как пользовательских, так и стандартных, например, category или post_tag).

Пример функции для удаления терминов:

Если требуется универсальная функция для удаления всех терминов из заданной таксономии у конкретного поста:

function remove_post_terms( $post_id, $taxonomy ) {
    if ( taxonomy_exists( $taxonomy ) ) {
        wp_set_post_terms( $post_id, [], $taxonomy );
    } else {
        return new WP_Error( 'invalid_taxonomy', 'Указанная таксономия не существует.' );
    }
}

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

remove_post_terms( 123, 'category' ); // Удалит все категории из поста с ID 123
remove_post_terms( 456, 'custom_taxonomy' ); // Удалит все термины из пользовательской таксономии custom_taxonomy

Дополнительно

  • Убедитесь, что указанная таксономия зарегистрирована и связана с этим типом записи.
  • Если нужно удалить только определённые термины, можно передать массив ID терминов, которые не должны оставаться у поста.
smsc banner 480x320smsc banner 728x90smsc banner 120x600flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600jivo banner 480x320jivo banner 728x90jivo banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как из стандартного типа записи post удалить «uncategorized» из ссылки в WordPress?

При создании записей в WordPress без указания категории по умолчанию им присваивается категория «Без рубрики» («Uncategorized»). Это приводит к появлению лишней части ссылки, например: https://example.com/bez-rubriki/nazvanie-zapisi. Если вы хотите убрать «bez-rubriki» из URL, то вам потребуется немного модифицировать настройки и добавить пользовательский код. В этой статье я покажу, как это сделать и избежать ошибок 404. Шаг…
Подробнее

Как на WordPress сделать архивную страницу со всеми авторами и структуру ссылок домен/authors/author

Чтобы сделать архивную страницу в WordPress, которая перечисляет всех авторов и предоставляет доступ к их страницам профилей через структуру ссылок вида домен/authors/author, нужно выполнить следующие шаги: 1. Создание пользовательской страницы для архива авторов Создайте файл шаблона: В вашей активной теме создайте файл page-authors.php. Это будет специальная страница, отображающая список всех авторов. Добавьте код для вывода…
Подробнее

Как сделать функцию для редиректа со старых ссылок сайта на новые в WordPress?

Для создания функции редиректа в WordPress со старых ссылок на новые, можно использовать файл .htaccess или написать специальный код в functions.php темы. Рассмотрим оба варианта: 1. Редирект через .htaccess Если вам нужно выполнить редиректы для множества старых URL, проще всего это сделать через файл .htaccess в корне вашего сайта. Для этого откройте или создайте файл…
Подробнее