Вопрос
На своем сайте я использую плагин ACF и поле типа "объект записи" для связи примера и товара, из которого он был сделан, но из-за одинаковых заголовков все товары в списке выбора выглядят одинаково. Можно ли добавить какой-то отличительный признак?
Ответ
Да, можно. Судя по скриншоту, у вас у разных товаров могут быть одинаковые заголовки. Вероятно, другие отличительные характеристики вы заносите через специальные поля (сорт, вес и так далее). Чтобы решить вашу проблему, к заголовку товара можно подставлять какой-то отличительный признак из характеристик товара, но лучше и надежнее добавить уникальный параметр, например, id. Для этого есть специальный хук-фильтр:
Этот код нужно вставить в файл functions.php
// Функция для обновления отображаемого значения в поле "post_object" ACF function ctr99_update_acf_post_object_field_choices($title, $post) { // Добавляем ID поста в конец заголовка (title) для визуального удобства в квадратных скобках $title .= ' [' . $post->ID . ']'; // Возвращаем обновленный заголовок return $title; } add_filter( 'acf/fields/post_object/result', 'ctr99_update_acf_post_object_field_choices', 10, 2 );
Если объяснить простыми словами, то мы перехватываем то, что отобразится в списке выбора этого поля, и меняем на удобное нам значение.
Таким образом, вы получите:
Если все сделали правильно, то в админке будет видно с каким товаром происходит связь и путаницы не возникает. Да, возможно, по id будет не очень удобно определять, чем товары все же отличаются, но зато это самый надежный способ сделать так, чтобы заголовки точно отличались. Если выбрать какую-то характеристику (например, сорт), есть риск, что у каких-то записей эта характеристика совпадет, то есть придется добавить еще какой-то отличительный признак. Но если вы точно знаете, какая характеристика является уникальной для товара, то можно добавить ее вместо id, получив ее в объекте $post и добавив к $title.
Задать свой вопрос вы можете в комментариях или через страницу контакты в шапке сайта.