WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

get_term_meta() WP 4.4.0

Получает значение указанного мета поля элемента таксономии (рубрики, метки, и т.д.). Можно получить все значения в виде массива.

Функция работает аналогично get_post_meta(), за исключением того что получает произвольные поля элементов таксономии, а не постов.

Также, имеется различии в том что для элемента таксономии нет админ-интерфейса для добавления полей. Для этих целей следует использовать функции: add_term_meta() update_term_meta().

Работает на основе: get_metadata()
✈ 1 раз = 0.000125с = быстро | 50000 раз = 0.20с = очень быстро PHP 7.1.2, WP 4.7.3

Хуков нет.

Возвращает
  • Если $single = false, то массив значений указанного мета поля. Если значений нет, то пустой массив array().
  • Если $single = true, то отдельное значение указанного метаполя (первое в массиве), оно может быть любым (строкой, числом, объектом, массивом).

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

get_term_meta( $term_id, $key, $single );
$term_id(число) (обязательный)
ID элемента таксономии.
$key(строка)
Ключ мета поля.
По умолчанию: ''
$single(логический)

В каком виде возвращать значение.

  • false - массив значений
  • true - единственное значение (первое из массива, если значений несколько)

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

Примеры

#1 Получаем единственное значение мета поля на странице элемента таксономии

Допустим у нас в метаполе test_meta_field рубрики 65 содержится строка Какой хороший день и нам нужно вывести эту строку на странице рубрики.

$term_id = get_query_var('cat'); // текущая рубрика, предположим мы зашли в рубрику 65
echo get_term_meta( $term_id, 'test_meta_field', true ); // выведет: Какой хороший день

#2 Получим все значения мета поля test_meta_field

$fields =  get_term_meta( 10 , 'test_meta_field', false );
if( $fields ){
	print_r( $fields );
	/* выведет
	Array
	(
		[0] => Привет мир
		[1] => Hello world
	)
	*/
}
else {
	// метаданных нет...
}

Код get term meta: wp-includes/taxonomy.php WP 4.8.1

<?php
function get_term_meta( $term_id, $key = '', $single = false ) {
	// Bail if term meta table is not installed.
	if ( get_option( 'db_version' ) < 34370 ) {
		return false;
	}

	return get_metadata( 'term', $term_id, $key, $single );
}

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

Из метки: metadata (метаданные)

petrozavodsky 674alkoweb.ru
Делаю веб, можно сказать работаю с WordPress. Временами живу в Краснодаре.
get_term_meta 3 комментария
  • А можно наоборот как-то получить категории по произвольному полю?
    Допусти у нескольких рубрик есть доп поле со значением "Какой хороший день", вот нужно вывести все рубрики с этим полем.

    Ответить1.5 года назад #
    • Kama4472

      Используйте параметр meta_query при получении рубрик с помощью get_categories() или get_terms()... Принцип использования точно такой же как получение записей по метаполям.

      1
      Ответить1.5 года назад #
      • Спасибо, воспользовался get_terms()

        add_term_meta( $term_id, $meta_key, 'Привет мир', true );
        $rtrty = get_term_meta( $term_id, $meta_key, true ); // выведет 'Привет мир'
        
        $args = array(
        	'meta_query' => array(
        		array(
        		   'key'       => 'test_meta_field',
        		   'value'     => 'Привет мир',
        
        		)
        	)
        );
        
        $terms = get_terms( 'category', $args );
        
        foreach( $terms as $term ){
        	echo $term->name;
        }
        Ответить1.5 года назад #

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

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