Поддержка Проблемы и решения Беда с выводом названий рубрик.

  • Всем привет!

    Пишу подробно, вдруг эту задачу можно решить каким-то другим способом.

    Есть каталог. Тысячи картинок с разными данными, поэтому делать под каждую картинку свою страницу лениво (да и надо ли?). Добавил через Advanced Custom Fields нужные поля и правил «Шаблон загруженного изображения» (image.php), чтобы вставить туда, кроме всего прочего, строку навигации с родительской страницы.

    Пришлось сделать небольшие массивы с федеральными округами и регионами для подстановки адреса и текста ссылки, получаемых из get_the_title() данных. Но делать массив пивзаводов руками — их тысячи и какие-то возможно придётся править, поэтому придумал добавлять их в текст ссылки через рубрики (не нужно лезть в файл и возможность быстро найти и изменить существующую). Добавил через тот же Advanced Custom Fields к картинке. Больше там ничего подходящего нет, другие способы подразумевают правку у каждой пробки вручную (при изменении названия пивзавода с 30-ю пробками — у всех 30-ти). Метки заняты цветами.

    Попробовал — всё получилось, работало какое-то время при набивании данных. Но потом почему-то перестали правильно выводиться названия рубрик (пивзаводов). Проверил все возможные варианты — работают и не работают и те, и другие варианты. То есть логики никакой:
    1) кавычки — есть/нет
    2) раскладка — латиница/кириллица

    Потом стал смотреть в порядке их создания и, оказывается, что с какого-то момента база перестала выдавать именно название рубрики («Объект термина» в меню Advanced Custom Fields), но выдаёт ID термина.
    а) правильное написание — Главная | BS | СФО | Новосибирская область | Aludaris Brolis
    б) неправильное с объектом термина — Главная | BS | СФО | Новосибирская область | Fatal error: (текст можно посмотреть по ссылке)
    в) неправильное с ID — Главная | BS | СФО | Новосибирская область | 41
    Причём в варианте в) адрес ссылки выдаёт верно, то есть тут виновата именно рубрика.

    Выбранные пункты в Advanced Custom Fields: таксономия, рубрика, выбор, объект термина.

    Код «Шаблон загруженного изображения» (image.php) неполный

    <?php
    $regstring = get_the_title();
    $numreg = substr($regstring, 0, 2);
    $numbrew = substr($regstring, 0, -4);
    
    $dvfo = array ("dvfo", "ДВФО");
    ...
    $pvfo = array ("pvfo", "ПВФО");
    
    $reg14 = array ($dvfo[0], $dvfo[1], "Республика Саха (Якутия)");
    ...
    $reg87 = array ($dvfo[0], $dvfo[1], "Чукотский автономный округ");
    
    $reg04 = array ($sfo[0], $sfo[1], "Республика Алтай");
    ...
    $reg70 = array ($sfo[0], $sfo[1], "Томская область");
    
    echo '<a href="http://www.russiancaps.ru/index">Главная</a> | <a href="http://bs.russiancaps.ru">BS</a> | ';
    echo '<a href="http://bs.russiancaps.ru/' . ${"reg$numreg"}[0] . '">' . ${"reg$numreg"}[1] . '</a> | ';
    echo '<a href="http://bs.russiancaps.ru/' . ${"reg$numreg"}[0] . '/reg' . $numreg . '">' . ${"reg$numreg"}[2] . '</a> | ';
    echo '<a href="http://bs.russiancaps.ru/' . ${"reg$numreg"}[0] . '/reg' . $numreg . '/' . $numbrew . '">' . get_field('capsbrewery') . '</a>';
    ?>

    Сайт смотреть здесь. Так как я запнулся на этой ошибке при работе над Новосибирской области, то смотреть её (со страницы завода при клике по пробке):
    а) правильно — http://bs.russiancaps.ru/sfo/reg54/54-26/
    б) неправильно — http://bs.russiancaps.ru/sfo/reg54/54-14/

    Попробовал плагин для таксометрии (TaxoPress), то есть были создан массив рубрик отличный от стандартной «Рубрики». Результат тот же.

    Как исправить ситуацию? Вновь созданные рубрики не работают.

Просмотр 1 ответа (всего 1)
  • Исправлено таким путём:

    
    $breweryField = get_field('capsbrewery');
    $breweryName = is_string($breweryField) ? $breweryField : $breweryField->name;
    

    И заменой get_field(‘capsbrewery’) на $breweryName в тексте ссылки.

    • Ответ изменён 1 год, 10 месяцев назад пользователем hrustgurd.
Просмотр 1 ответа (всего 1)
  • Тема «Беда с выводом названий рубрик.» закрыта для новых ответов.