Метод 1: использование функции get_category_by_slug()
$category = get_category_by_slug('category-slug');
Этот простой метод использует встроенную функцию get_category_by_slug(), предоставляемую WordPress. Он принимает ярлык категории в качестве аргумента и возвращает объект категории, если он найден, или nullв противном случае.
Метод 2: прямой запрос к базе данных
$category = get_term_by('slug', 'category-slug', 'category');
В этом подходе мы используем функцию get_term_by(), которая позволяет нам получить термин (в данном случае категорию) на основе указанного поля. Мы передаем 'slug'в качестве параметра поля и 'category-slug'в качестве значения пула. Третий параметр определяет таксономию, для которой для категорий должно быть установлено значение 'category'.
Метод 3: использование класса WP_Term_Query
$args = [
'slug' => 'category-slug',
'taxonomy' => 'category',
];
$categories = new WP_Term_Query($args);
$category = $categories->get_terms()[0];
Этот метод предполагает использование класса WP_Term_Queryдля получения категории. Мы определяем желаемый слаг и таксономию в массиве $args, а затем создаем новый экземпляр WP_Term_Query. Наконец, мы вызываем метод get_terms(), чтобы получить массив совпадающих терминов и извлечь из результатов первую категорию.
Метод 4. Пользовательский запрос к базе данных
global $wpdb;
$category = $wpdb->get_row("SELECT * FROM $wpdb->terms WHERE slug = 'category-slug'");
Для опытных пользователей, знакомых с пользовательскими запросами к базе данных, этот метод предлагает альтернативный подход. Мы обращаемся к глобальному объекту $wpdbи выполняем специальный SQL-запрос, чтобы получить строку категории непосредственно из таблицы терминов.
На этом мы завершаем наше исследование различных методов получения категории по URL-адресу в WordPress с использованием PHP. Не стесняйтесь выбирать метод, который лучше всего соответствует вашим потребностям, и удачного программирования!