WordPress как на ладони
wordpress jino

wp_set_post_tags() WP 2.3.0

Устанавливает метки для поста.

Работает на основе: wp_set_post_terms()

Хуков нет.

Возвращает

Массив/false/WP_Error.
false, если $post_id не число или равно 0, в остальных случаях - массив ID которые были задействованы или объект WP_Error.

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

wp_set_post_tags( $post_id, $tags, $append );
$post_id(число) (обязательный)
ID поста. По умолчанию НЕ относиться к глобальной переменной global $post.
$tags(строка/массив)

Список элементов таксономии в виде массива или в строке через запятую.

Функция создаст новые метки, если не найдет указанные. Если указать название (в кириллице), то функция создаст метку. При этом: название будет названием, слаг слагом (обработается как обычно).

Если передается ID, или массив из ID, то убедитесь, что переменные передаются как числа, а не как строки! Потому что строки в виде числа, например, '98' будут интерпретироваться как название термина, а не его ID!

По умолчанию: ''

$append(логический)
Дополнить запись указанными метками или заменить их.
Если true, то текущая связь записи с метками не будет оборвана, а новые указанные метки добавятся к текущими.
Если false, то для записи установятся только указанные метки, из всех остальных запись будет удалена.
По умолчанию: false

Примеры

#1 Добавим метки для поста

Этот пример добавляет пост 42 в метки «чувства» и «жизнь»

wp_set_post_tags( 42, 'чувства,жизнь', true );

П.С. Если указанных меток не существует, то они будут созданы.

Код wp set post tags: wp-includes/post.php WP 4.8.2

<?php
function wp_set_post_tags( $post_id = 0, $tags = '', $append = false ) {
	return wp_set_post_terms( $post_id, $tags, 'post_tag', $append);
}

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

Из раздела: Для записей

Совместимый картридж в москве по выгодной стоимости

совместимый картридж в москве по выгодной стоимости

prostocartridge.ru

wp_set_post_tags 4 комментария
  • campusboy1833 cайт: wp-plus.ru

    Хочется заметить, что если сделать так:

    $my_tags = "чувства,жизнь";
    wp_set_post_tags( 42, $my_tags, true );

    То будет создана одна метка чувства,жизнь, а не две, как ожидается.

    P.S.: Сделал так и вроде стало нормально:

    $tags = str_replace(",", ", ", $wp_post_data->tags );
    $tags = mb_convert_case( $tags, MB_CASE_TITLE, "UTF-8" );
    Ответить1.1 года назад #
    • Kama4486

      Что-то не то у тебя... Только что попробовал на этом блоге код

      wp_set_post_tags( 6462, 'чувства,жизнь', true );

      В результате создалось 2 метки: чувства и жизнь...

      Ну и в коде так такое разбиение:

      $tags = explode( ',', trim( $tags, " \n\t\r\0\x0B," ) );
      1
      Ответить1.1 года назад #
      • campusboy1833 cайт: wp-plus.ru

        Сам в шоке. Не знаю, как объяснить. Пакетно добавлялось 10к статей. Часть меток норм, часть слитно (прям с запятой).

        Ответить1.1 года назад #
        • Kama4486

          Очевидно там запятая не как запятая передавалась или с кодировкой что-то...

          Ответить1.1 года назад #

Здравствуйте, !

Ваш комментарий