Описание
Устанавливает термины (рубрики) для записи (поста).
wp_set_post_terms() работает на базе wp_set_object_terms().
Функция возвращает false, если $post_id не число или равно 0, в остальных случаях - массив ID которые были задействованы или объект WP_Error.
Использование
<?php wp_set_post_terms( $post_ID, $tags, $taxonomy, $append ) ?>
Параметры
- $post_ID (число) (обязательный)
- ID поста.
По умолчанию: 0 - $tags (строка/число/массив)
- Список меток в виде массива или в строке через запятую. Если таксономия древовидная нужно передавать ID терминов!
По умолчанию: array - $taxonomy (строка)
- Название таксономии, к элементам которой прикреплять запись(и).
По умолчанию: post_tag - $append (логический)
- Добавить к существующим или заменить термины:
true — будут добавлены к существующим;
false — будут заменены.
По умолчанию: false
Примеры
1. Категории и метки по умолчанию
Нижеследующий пример кода, который можно вставить в functions.php для того, чтобы при сохранении поста ему указывалась рубрика (название рубрики) и метка (название метки) по умолчанию, если такие метка/рубрика еще не указаны:
add_action( 'wp_insert_post', 'update_post_terms' );
function update_post_terms( $post_id ) {
if ( $parent = wp_is_post_revision( $post_id ) )
$post_id = $parent;
$post = get_post( $post_id );
if ( $post->post_type != 'post' )
return;
// добавим метку по умолчанию
wp_set_post_terms( $post_id, 'название метки', 'post_tag', true );
// добавим категорию по умолчанию
$categories = wp_get_post_categories( $post_id );
$newcat = get_term_by( 'name', 'название рубрики', 'category' );
array_push( $categories, $newcat->term_id );
wp_set_post_categories( $post_id, $categories );
}
На заметку
Для древовидных терминов нужно передавать ID термина а не название, а то может возникнуть конфликт названий: могут быть одинаковые названия терминов в разных ветках.
ID термина можно посмотреть в админке (в ссылке) или получить так:
$term_id = term_exists($term, $taxonomy, $parent );
wp_set_post_terms()
из файла: /wp-includes/post.php WP 3.3.2function wp_set_post_terms( $post_id = 0, $tags = '', $taxonomy = 'post_tag', $append = false ) {
$post_id = (int) $post_id;
if ( !$post_id )
return false;
if ( empty($tags) )
$tags = array();
$tags = is_array($tags) ? $tags : explode( ',', trim($tags, " \n\t\r\0\x0B,") );
// Hierarchical taxonomies must always pass IDs rather than names so that children with the same
// names but different parents aren't confused.
if ( is_taxonomy_hierarchical( $taxonomy ) ) {
$tags = array_map( 'intval', $tags );
$tags = array_unique( $tags );
}
return wp_set_object_terms($post_id, $tags, $taxonomy, $append);
}Связанные Функции
- get_term_link() view
- get_term_children() view
- get_terms() view
- term_description() view
- wp_get_object_terms() view
Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.
Поддерживать свое тело в хорошем состоянии становится все сложнее и сложнее, ведь в нашу жизнь в каждым годом приходят новые удобства, которые освобождают нас от физического труда. Занятия йогой в таких условиях как раз то что нужно для вашего тела. Никогда не забывайте, что здоровье в движении!
