Я делаю свою первую тему, и все развивается очень быстро благодаря всей помощи, которую предлагают The Loop и WooCommerce SDK. Тогда сегодня я потратил целый день на то, чтобы сделать что-то простое, например, показ изображения ... После целого дня борьбы я смог узнать только то, что WP, кажется, не предлагает никаких средств для получения изображения категории, и МНОГИЕ люди задавал этот вопрос в течение многих лет, и все же я не могу найти способ на самом деле сделать это ...
(
То, что я хочу сделать, - это создать над моим магазином ползунок, который показывает изображения выбранных категорий магазинов. Я хочу иметь возможность вводить список имен терминов и исходя из этого, моя функция должна генерировать ссылки на категории продуктов в форме изображения категории.
Звучит просто ... оказывается, это не близко к ЗАКРЫТИЮ к простому ... Прежде чем вы уйдете и отметите это как дублирующий вопрос, позвольте мне объяснить, почему я его задаю ...
Некоторые из найденных мной решений требуют, чтобы я знал идентификаторы термина, а не имя крачки. Некоторые говорят: «Получить идентификатор с помощью пользовательского поиска», но не объясняют как. Я знаю, как делать пользовательские таксономические запросы для постов, но не для терминов. документация смущает меня с точки зрения того, какие значения передать терминам запроса: (
Другие решения требуют, чтобы я сначала нашел продукт определенной категории, а затем нашел, что изображение категории продукта работает в обратном направлении (????)
Тогда, конечно, есть ответ по умолчанию, который люди любят давать за все: «О, вы разрабатываете свою собственную тему и хотите показывать значки категорий? Просто, просто скачайте плагин, чтобы сделать это для вас». Теперь, почему я не подумал просто включить чей-то плагин в мою тему? (Facepalm)
В других ответах просто показано, как напечатать список имен терминов, но до сих пор ничто не позволило мне сделать то, что должно было бы быть таким простым:
$categories = array("software", "plugins", "merch");
foreach($categories as $cat) {
$term_id = get_term_id($cat);
$term_image = get_term_featured_image($term_id);
echo '<img src="'.$term_image.'">;
}
Первая проблема с получением термина состоит в том, что функция wordpress для получения идентификатора термина работает только для таксономии категории, но мне нужно запросить таксономию WooCommerce product_cat. Во-вторых, кажется, что нет возможности получить миниатюру / изображение, даже если у вас есть идентификатор. И что теперь?
Итак, я перешел на низкий уровень и начал запрашивать таблицы напрямую, используя $ wpdb, и я определяю, какой термин у меня после, имеет значение term_id 94. Я запрашиваю в таблице termmeta идентификатор записи миниатюры и нахожу, что это 905. Теперь я перехожу к моя таблица сообщений и найти .... там нет записи 905! WTF? Я делаю это еще для двух категорий и нахожу то же самое. Поиск идентификатора изображения приводит к тому, что при попытке извлечь вложения сообщения ничего не возвращается, поскольку нет сообщения, соответствующего идентификатору изображения ...
Почему это так чертовски сложно? WordPress делает все остальное настолько невероятно простым, но эта простая звучащая задача кажется почти невозможной для выполнения ... так что теперь, когда вы видите, что я погуглил это до смерти и уже боролся с моей обратной стороной, я задаю этот вопрос из отчаяния:
Как взять массив имен терминов product_cat и преобразовать его в массив URL для отображения изображения категории?
Спасибо