Как в wp рубрикам можно добавить поля?
В общем нужно сделать мини каталог
думаю сделать стандартными записями, сделать рубрики - как категории каталога, записи как продукты
нужно вывести рубрики с изображениями и пр. полями
но проблема встала - как теперь дать и вывести рубрикам отдельные поля (изображения и прочее)
в acf выбираю рубрику, но в самой рубрике поля не появляются а появляются непосредственно в записи
Дополнительно:
acf практически стандартный плагин для wp, все там работает правильно.
смотрите
мне нужно доп поля подвязать самим рубрикам а не записям в них
то есть
я на главной или на какой то странице хочу вывести список рубрик, и хочу что бы кроме названия рубрик с ними были подвязаны поля
изображения, текстовые поля и пр.
А я уже голову сломал
// Добавление дополнительного поля в рубрику function custom_taxonomy_fields($tag) { $term_id = $tag->term_id; $meta = get_option("category_$term_id"); ?> <tr class="form-field"> <th scope="row" valign="top"><label for="custom_field"><?php _e('Custom Field'); ?></label></th> <td> <input type="text" name="meta[custom_field]" id="meta[custom_field]" value="<?php echo esc_attr($meta['custom_field']) ?? ''; ?>" /> <p class="description"><?php _e('Enter a value for the custom field.'); ?></p> </td> </tr> <?php } // Сохранение значения дополнительного поля в рубрике function save_taxonomy_fields($term_id) { if (isset($_POST['meta'])) { $meta = sanitize_text_field($_POST['meta']); update_option("category_$term_id", $meta); } } add_action('category_edit_form_fields', 'custom_taxonomy_fields'); add_action('edited_category', 'save_taxonomy_fields'); |
// Добавление дополнительного поля в рубрику function custom_taxonomy_fields($tag) { $term_id = $tag->term_id; $meta = get_option("category_$term_id"); ?> <tr class="form-field"> <th scope="row" valign="top"><label for="custom_field"><?php _e('Custom Field'); ?></label></th> <td> <input type="text" name="meta[custom_field]" id="meta[custom_field]" value="<?php echo esc_attr($meta['custom_field']) ?? ''; ?>" /> <p class="description"><?php _e('Enter a value for the custom field.'); ?></p> </td> </tr> <?php } // Сохранение значения дополнительного поля в рубрике function save_taxonomy_fields($term_id) { if (isset($_POST['meta'])) { $meta = sanitize_text_field($_POST['meta']); update_option("category_$term_id", $meta); } } add_action('category_edit_form_fields', 'custom_taxonomy_fields'); add_action('edited_category', 'save_taxonomy_fields');
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Рубрика в WordPress — это term, поэтому поля нужно привязывать не к записи, а к таксономии
category. В ACF для этого в группе полей укажите правило отображения примерно такое: Taxonomy Term равно Category. После этого поля появятся на странице создания и редактирования рубрики.Выводится такое поле не как обычное поле записи, а с указанием ID терма. Для рубрик ACF обычно использует формат
category_123, где123— ID рубрики.$categories = get_categories([ 'hide_empty' => false, 'parent' => 0, ]); foreach ($categories as $category) { $image = get_field('category_image', 'category_' . $category->term_id); $text = get_field('category_text', 'category_' . $category->term_id); echo '<article class="catalog-category">'; if ($image) { echo wp_get_attachment_image($image['ID'], 'medium'); } echo '<h3><a href="' . esc_url(get_category_link($category)) . '">' . esc_html($category->name) . '</a></h3>'; if ($text) { echo '<p>' . esc_html($text) . '</p>'; } echo '</article>'; }
Если поле изображения в ACF настроено на возврат ID, код будет ещё проще:
$image_id = get_field('category_image', 'category_' . $category->term_id); if ($image_id) { echo wp_get_attachment_image($image_id, 'medium'); }
Если используете не стандартные рубрики, а свою таксономию, меняется только префикс. Например для таксономии
product_cat:$value = get_field('field_name', 'product_cat_' . $term->term_id);
Для мини-каталога стандартные записи и рубрики подойдут только если функционал простой. Если дальше будут фильтры, свойства, цены, остатки и импорт, лучше сразу рассмотреть WooCommerce или кастомный тип записи с отдельной таксономией, чтобы не смешивать блоговые записи и товары.