Термины или страницы

Главные вкладки

Аватар пользователя univerico univerico 4 августа 2023 в 11:24

Можно ли как-то влиять на отображение ссылок на сущность внутри нод, не просто выбирать метку или саму сущность, а, например, аккордион прикрутить или якоря?
У меня есть термины
Но есть ограничения, например их сложнее вывести на главную.

Поэтому для одного из типов нод добавляю поля ссылки на сущность и ссылаюсь там на свои термины.

Но если их будет несколько, например будет нода "Мышцы живота" и там ссылки на термины: прямую, поперечную мышцы и т.д.
для юзеров хотелось бы прикрутить аккордеон или ссылки на якоря хотя бы.

Рассматриваю альтернативные варианты, например, сделать исходно нодами или и нодами, и терминами и закрывать термины от поисковиков через роботс или еще как-то

(сейчас сайт - песочница, только тестовые есть страницы, можно всё переделать и могу если что и вручную HTML использовать)

Как думаете лучше сделать, чтобы сохранить:
1)функционал для иерархии, перелинковки, сортировки и фильтрации
2)удобно юзерам
3)хорошо индексировалось (уже была тема об этом)

Комментарии

Аватар пользователя VasyOK VasyOK 4 августа 2023 в 20:37
1

"Можно ли как-то влиять на отображение ссылок на сущность внутри нод, не просто выбирать метку или саму сущность, а, например, аккордион прикрутить или якоря?"
В ноде есть разделы и нужно как-то ссылаться на эти разделы? Возможно есть модуль для CKEditor который по заголовкам содержание с якорями строит. Если нет - можно подключить не слишком старого программиста - и на бек и на фронт такое реализуемо.

"Но есть ограничения, например их сложнее вывести на главную. " - не понимаю. Через views хоть
термины хоть ноды.

На 9, 10 переходите раз сайт песочница.

Аватар пользователя univerico univerico 5 августа 2023 в 10:15

Сейчас основной сущностью являются термины, в них несколько кастомных полей (в примере там просто не всё заполнено), они все перелинкованы между собой через ссылки на термины внутри некоторых из полей.
Но когда возникла задача выводить поштучно на главную некоторые термины прямо через чекбокс "Вывести на главную" на вкладке редактирования, выяснилось что у терминов такого чекбокса нет, только у нод.
Ну и уже появились мысли может через ноды сделать тогда
а)заново с теми же полями
б)к любому типу нод прикрутить поле - ссылку на сущность и ссылаться там на мои термины, тем более нужно по несколько штук вместе выводить по смыслу.

Второй вариант конечно логичнее, наверное. Вопрос по индексированию только...

Кто-то делал ссылки на сущности на сайтах? Как на практике сейчас поисковики на это смотрят?

Вьюхи вариант, спасибо, но я до сих пор не могу их нормально освоить. И контент будет не сильно меняться... не нужно автоматом выводить, можно и вручную нодами поэтому

и на бек, и на фронт такое реализуемо

Можно HTML в режиме источник или нужно в темы лезть или еще куда-то?

Аватар пользователя VasyOK VasyOK 5 августа 2023 в 14:04
1

Если программистом - он сам решит куда ему лезть.

Извините плохо понимаю что вы пишите. Надо как-то лаконичнее. Пока могу только анекдот из жизни рассказать. Делал с одним человеком сайт. Пришли с заказчику, напарник выслушал требоания и твердым голосом говорит: "Типы материалов такие-то, поля такие-то, словари такие-то." Я стою молчу, думаю ладно раз человек разбирается не буду мешать. В итоге за неделю структуру раза 3 переделывали.

Аватар пользователя univerico univerico 6 августа 2023 в 15:19

Надо как-то лаконичнее.

Кто-то делал поля типа "Ссылка на сущность" в нодах? Конкретно ссылки на термины, внутри которых помимо самого названия термина через дополнительные кастомные поля добавлены картинки и текст. Как на практике сейчас поисковики на это смотрят?
Это если лаконично сформулировать

А если подробнее, то
Хотелось бы, чтобы поисковики видели и сами термины, и некоторые ноды с ними. И хорошо всё это индексировали.

Пример есть термины: яблоки, груши, бананы, киви... (в реале "прямая мышца живота", "поперечная мышца" и т.д) пример может не совсем корректный... потому что то что у меня выбрано в качестве свойств терминов более однозначно

Каждый термин содержит поля с текстом, ссылками на другие термины и картинками (например фото яблока, заполненные поля где растет, кем опыляется, какие семена у них).

Есть нода "Местные фрукты и овощи", в ней ссылки на термины "яблоки" и "груши" с полной информацией о каждом и другой уникальный дополнительный текст и картинки.

Есть нода "Фрукты", в ней все фрукты аналогично выведены через ссылки на термины.

Ноды с ссылками на сущности планирую использовать для того, что должно хорошо проиндексироваться.
Это как бы промежуточный вариант между вьюхами и вручную созданными страницами с навигацией и якорями.

А то, что более редкое и не нужно индексировать вроде "Опыляемые таким-то насекомым", "Произрастающие на такой-то почве", это вьюхами.

Хотя с примером ближе к моей теме и корректнее наверное будет какой-то географический пример
Например аналогом мышц, костей, сосудов, органов будут конкретные названия рек, озер, гор.

Корректно ли сделать термины "Волга", "Дон", "Байкал"
и для каждого термина добавить поля
-от чего берет начало
-куда впадает
- кто там обитает

И как лучше тогда сделать индексируемые ноды, например, "Реки такого-то материка"?
Можно ли внутри ноды сделать какой-то свой уникальный текст и в специальном поле ссылаться на термины "Волга" и т.д. или вообще иначе лучше делать?
Или закрыть термины от индексирования и делать просто страницами с навигацией?

А вот если нужно потом посмотреть все реки, в которых обитает какое-то животное, это уже вьюхами.

Аватар пользователя univerico univerico 7 августа 2023 в 11:40

Как сделать, чтобы и представленные в нодах ссылки на сущности с полным их отображением, и сами экземпляры сущностей хорошо индексировались?

Как лучше настроить разворачиваемый/сворачиваемый формат отображения каждой из ссылок внутри ноды?

Это уже похоже на кармические уроки лаконочности? Хотя вначале была мысль, что Вы шутите.

Аватар пользователя VasyOK VasyOK 7 августа 2023 в 22:44
1

Я не специалист по СЕО. Если сеошник скажет, что должно быть для лучшей индексации страниц - можно будет ответить как это сделать.

Сворачиваемое разворачbваемое изображение.
colorbox, lightgallery. Есть еще варианты.

Аватар пользователя univerico univerico 9 августа 2023 в 13:49

Сворачиваемое разворачbваемое изображение.

Нет, все поля термина нужно сворачивать / разворачивать (в том числе кастомные поля и длинный текст с изображениями внутри него) .
Т.е. в ноде я хочу ссылаться на несколько экземпляров терминов целиком со всеми их полями. Я вижу три варианта
1)через поле типа "ссылка на сущность" (тогда прошу подсказать как настроить чтобы можно было каждый из терминов юзеру сворачивать и разворачивать или отозваться в личку, кто готов взяться за деньги)

2)копипастить вручную основное о термине и вставлять в ноды
3) через редактор HTML тегами или плагином

С точки зрения СЕО я предполагаю, что если я хочу чтобы большие ноды лучше индексировались, то нужно сами термины прикрыть (потому что с одной стороны перелинковки - хорошо, но дубли плохо...)

Если сеошник скажет

Я думаю уже что в моем случае надежнее сделать АБ тест и сравнить на конкретном сайте, как лучше индексируется...
Можно было бы поэкспериментировать, не исключено, что окажется что для индексирования нет прямо критической разницы, если на практике посмотреть, тогда выберу просто более удобный вариант, но проблема в том, что я пока технически не могу сделать 1 и 3 варианты...
P.S. Подробнее про 3 вариант
Если делать плагином, прошу подсказать, если кто-то знает что-то вроде ckeditor_entity_link , но отображать не ссылку, а всю сущность... )
Если вручную код вставлять через CKEditor
Я смотрю через F12 ,что отображается когда модуль entityreference через свое поле это делает... и в сам модуль залажу (с целью найти нужную функцию и потом просто в режиме источник (надеюсь что в режиме php получится) похожий код использовать вручную, или может модуль попатчить как-то, чтобы аккордеон добавить. Склоняюсь ко второму варианту, судя по тому, что там внутри модуля (многое мне пока не нужно...вроде контроля доступов и т.д. но понимаю, что там не просто сущности отображаются, а много еще подводных камней, возможно придется искать программиста)
вот это из модуля взяты примеры, может натолкнет кого-то на мысль или кто-то готов за деньги взяться

/**
 * Implements hook_field_formatter_settings_summary().
 */

function entityreference_field_formatter_settings_summary($field, $instance, $view_mode) {
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $field_type_settings = entityreference_field_type_settings($field);

  $summary = array();

  if ($display['type'] == 'entityreference_label') {
    $summary[] = $settings['link'] ? t('Link to the referenced entity') : t('No link');
    $summary[] = $settings['bypass_access'] ? t('Show labels regardless of access') : t('Respect entity access for label visibility');
  }

  if ($display['type'] == 'entityreference_entity_view') {
    $entity_info = entity_get_info($field_type_settings['entity_type']);
    $view_mode_label = $settings['view_mode'] == 'default' ? t('Default') : $settings['view_mode'];
    if (isset($entity_info['view modes'][$settings['view_mode']]['label'])) {
      $view_mode_label = $entity_info['view modes'][$settings['view_mode']]['label'];
    }
    $summary[] = t('Rendered as @mode', array('@mode' => $view_mode_label));
    $summary[] = !empty($settings['links']) ? t('Display links') : t('Do not display links');
    $summary[] = !empty($settings['use_content_language']) ? t('Use current content language') : t('Use field language');
    $summary[] = !empty($settings['hide_title']) ? t('Hide Title') : t('Show Title');
  }

  return implode('<br />', $summary);
}

/**
 * Implements hook_field_formatter_info().
 */

function entityreference_field_formatter_info() {
  return array(
    'entityreference_label' => array(
      'label' => t('Label'),
      'description' => t('Display the label of the referenced entities.'),
      'field types' => array('entityreference'),

и

/**
 * Implements hook_field_formatter_settings_form().
 */

function entityreference_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
  $display = $instance['display'][$view_mode];
        // If the link is allowed and the entity has a uri, display a link.
        if ($display_link) {
          $uri = entity_uri($target_type, $item['entity']);
        }

        $result[$delta] = array(
          '#theme' => 'entityreference_label',
          '#label' => $label,
          '#item' => $item,
          '#uri' => $uri,
          '#settings' => array(
            'display' => $display['settings'],
            'field' => $field['settings'],
          ),
        );

Аватар пользователя univerico univerico 9 августа 2023 в 14:15

А каким способом лучше выборочно одни термины закрывать от индексирования, а другие оставлять видимыми? Вручную через роботс? Или есть еще способы?

Дело в том, что я не хочу оставлять это на выбор ботов поисковиков, иначе, если им не понравятся дубли, они могут прикрыть так от индекса нужную мне обобщающую ноду вместо исходников терминов.

При этом не хотелось бы закрывать все термины от индексирования.

Есть некоторых термины, в которых будет мало инфы, только картинка и пару слов, их можно было бы безболезненно закрыть от индексирования.

Но нужно часть других терминов оставить видимыми поисковиками, там и инфы больше будет, и по данным вордстат они более востребованы, чем обобщающие ноды. Возможно дубль инфы устроит поисковик и он будет обе страницы под разные запросы выдавать, но, если я увижу, что робот исключил нужный более важны термин, я вручную лучше закрою от индекса обобщающую ноду.

Аватар пользователя univerico univerico 6 августа 2023 в 15:39
В ноде есть разделы и нужно как-то ссылаться на эти разделы?

Всё проще, можно ссылаться на всю ноду или на весь термин со всеми его полями. Просто хочу чтобы каждая из нод/каждый из терминов в свернутом виде отображались и при желании юзер мог развернуть полное описание как в аккордионе.
И главный вопрос, как это всё будет индексироваться.

"Но есть ограничения, например их сложнее вывести на главную. "


вот так хотелось бы, с этого всё началось...когда выяснилось, что у терминов нет такого функционала...

но потом уже и другие вопросы всплыли, так что вывод на главную уже вторичен, блоком вручную HTML можно попробовать наверное или еще как-то

Аватар пользователя Andruxa Andruxa 7 августа 2023 в 13:36
1

Что мешает добавить термину логическое поле "Выводить на главную" и фильтровать по нему вьюс главной страницы?

Аватар пользователя univerico univerico 7 августа 2023 в 13:58

Спасибо, наверное, так тоже попробую, но нужно разобраться тогда, за счет чего и как работал под капотом функционал, который был из коробки для нод и сравнить индексирование. Нужно чтобы новый способ также хорошо помогал улучшать индексирование страниц терминов как и вывод нод на главную старым способом.

Аватар пользователя gun_dose gun_dose 9 августа 2023 в 18:49
1

С помощью модуля metatag можно скрыть определённые словари от индексации.
С помощью модуля rabbit hole можно вообще закрыть роуты выбранных словарей.
Всё остальное пляшет от дизайна, что там куда сворачивать и разворачивать