Вопрос или проблема
Я хочу получить метаданные по имени категории пользовательского типа записи.
Сейчас я получаю все метаданные, но хочу получить специальные для каждой категории.
$partSql = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."postmeta WHERE meta_key = 'prd_part_no'", ARRAY_A);
Вы можете использовать функцию get_post_meta в WordPress, чтобы это осуществить. Вот ссылка get_post_meta на нее в документации WordPress.
Ответ или решение
Чтобы извлечь метаданные для конкретной категории кастомного типа постов в WordPress, вы можете использовать комбинацию методов get_posts
или WP_Query
вместе с get_post_meta
. Это позволит вам фильтровать посты по категории и затем получить метаданные для этих постов.
Вот подробный пример, как это можно сделать:
Шаг 1: Получите ID категории
Сначала вам нужно получить ID категории, для которой вы хотите получить метаданные. Вы можете сделать это с помощью функции get_category_by_slug
или get_term_by
, если вы используете категории, которые не являются стандартными.
Шаг 2: Используйте WP_Query для получения постов в определенной категории
// Укажите название или слаг категории
$category_slug = 'your-custom-category';
// Получите объект категории
$category = get_category_by_slug($category_slug);
// Если категория существует
if ($category) {
// Создайте новый экземпляр WP_Query
$args = array(
'post_type' => 'your_custom_post_type', // Укажите тип вашего кастомного поста
'posts_per_page' => -1, // Получить все посты
'tax_query' => array(
array(
'taxonomy' => 'category', // Укажите нужную таксономию
'field' => 'term_id',
'terms' => $category->term_id,
),
),
);
// Выполните запрос
$query = new WP_Query($args);
// Переберите посты
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
// Получите метаданные для текущего поста
$meta_value = get_post_meta(get_the_ID(), 'prd_part_no', true);
// Выводим метаданные
echo 'Meta Value for ' . get_the_title() . ': ' . $meta_value . '<br>';
}
// Сброс глобального поста
wp_reset_postdata();
} else {
echo 'Нет постов в данной категории.';
}
} else {
echo 'Категория не найдена.';
}
Описание кода:
- Получение категории: Мы получаем объект категории с использованием слага.
- Настройка WP_Query: Подготовка аргументов для
WP_Query
, чтобы фильтровать по указанной категории. - Цикл по постам: Мы перебираем все посты, которые соответствуют условиям запроса.
- Получение метаданных: Используем
get_post_meta
, чтобы получить значения метаданных для каждого поста. - Вывод результата: Выводим заголовок и метаданные для каждого поста.
Этот подход позволяет получить и отобразить метаданные для кастомных постов в зависимости от заданной категории.