Вопрос или проблема
Я создал пользовательскую таксономию под названием Локация, а затем добавил Нью-Джерси, Нью-Йорк и так далее. Есть ли функция WordPress, которая извлекает список всех идентификаторов под Локацией, аналогично тому, что делает get_all_category_ids()?
Вы можете получить это следующим образом
$terms = get_terms("my_taxonomy");
$count = count($terms);
if ( $count > 0 )
{
echo "<ul>";
foreach ( $terms as $term )
{
echo "<li>" . $term->name . "</li>";
}
echo "</ul>";
}
В противном случае вы также можете использовать это
$term_slug = get_query_var( 'term' );
$taxonomyName = get_query_var( 'taxonomy' );
$current_term = get_term_by( 'slug', $term_slug, $taxonomyName );
$args_list = array(
'taxonomy' => 'item', // или используйте $taxonomyName для всех таксономий
'show_count' => true,
'hierarchical' => true,
'child_of' => $current_term->term_id,
'hide_empty' => '0',
'title_li' => '',
'echo' => '0',
);
echo wp_list_categories($args_list);
<?php
$args=array(
'name' => 'Location'
);
$output="objects"; // или объекты
$taxonomies=get_taxonomies($args,$output);
if ($taxonomies) {
foreach ($taxonomies as $taxonomy ) {
$term = term_exists($taxonomy->name, 'Location');
if ($term !== 0 && $term !== null) {
echo '<p> ID ТЕРМИНА -> ' .$term.' ИМЯ ТЕРМИНА ->'. $taxonomy->name . '</p>';
}
}
}
?>
попробуйте это 😛
Ответ или решение
Для получения списка всех идентификаторов пользовательской таксономии в WordPress, подобно функции get_all_category_ids()
, вы можете воспользоваться несколькими методами в зависимости от ваших требований. В данном ответе я подробно изложу основные подходы, чтобы вы могли выбрать наиболее подходящий для вашей задачи способ.
Метод 1: Использование get_terms()
Наиболее простым и прямым способом является использование функции get_terms()
. Этот метод позволяет получить все термины, относящиеся к вашей кастомной таксономии.
<?php
// Укажите ваш слаг таксономии
$taxonomy = 'location'; // замените на ваш слаг таксономии
// Получаем все термины для кастомной таксономии
$terms = get_terms(array(
'taxonomy' => $taxonomy,
'hide_empty' => false, // Параметр для отображения пустых терминов
));
// Проверка наличия терминов
if (!is_wp_error($terms) && !empty($terms)) {
echo '<ul>';
foreach ($terms as $term) {
echo '<li>TERM ID: ' . $term->term_id . ' - NAME: ' . $term->name . '</li>';
}
echo '</ul>';
} else {
echo 'Нет терминов для отображения.';
}
?>
Метод 2: Использование get_term_by()
Если вам нужно найти идентификаторы терминов по определенному слагу, можно использовать функцию get_term_by()
. Этот метод требует, чтобы вы заранее знали значное значение слага и таксономии.
<?php
// Замените эти значения нужными вам
$term_slug = 'new-jersey'; // пример слага термина
$taxonomy_name = 'location';
// Получение термина по слагу
$current_term = get_term_by('slug', $term_slug, $taxonomy_name);
if ($current_term) {
echo 'ID термина: ' . $current_term->term_id;
} else {
echo 'Термин не найден.';
}
?>
Метод 3: Использование term_exists()
Функция term_exists()
может помочь, если вы хотите проверить существование термина и получить его ID.
<?php
// Укажите нужный термин
$term = 'New Jersey'; // Название термина
$taxonomy = 'location'; // Слаг вашей кастомной таксономии
// Проверка существования термина
$term_info = term_exists($term, $taxonomy);
if ($term_info !== 0 && $term_info !== null) {
echo 'TERM ID: ' . $term_info['term_id'] . ' - TERM NAME: ' . $term;
} else {
echo 'Термин не найден.';
}
?>
Заключение
Выбор подходящего метода будет зависеть от ваших конкретных нужд: хотите ли вы получить все термины или найти конкретный по слагу. Функции get_terms()
, get_term_by()
и term_exists()
предоставляют мощный инструментарий для работы с пользовательскими таксономиями в WordPress. Будьте внимательны к производительности, особенно если у вас большое количество терминов, и используйте параметры, чтобы управлять выводом согласно вашим требованиям.
Изучите, как предлагаемые методы могут быть интегрированы в вашу текущую систему для достижения максимального результата.