Кликабельные карточки статей в WordPress: JavaScript для Elementor

Кликабельные карточки статей в WordPress: JavaScript для Elementor
Узнайте, как сделать карточки статей полностью кликабельными на WordPress с Elementor. JavaScript-решение для улучшения UX и работы с динамическим контентом.

Как сделать карточки статей кликабельными на WordPress

Создание кликабельных карточек статей на WordPress-сайте может значительно улучшить пользовательский опыт и повысить вовлеченность посетителей. В этой статье мы рассмотрим JavaScript-решение, которое позволит сделать карточки статей полностью кликабельными, включая динамически подгружаемый контент. Это решение особенно полезно для сайтов, созданных с помощью популярного конструктора Elementor.

Почему это важно?

По умолчанию в WordPress и Elementor кликабельным является только заголовок статьи или специально настроенная кнопка. Однако пользователям гораздо удобнее, когда они могут кликнуть в любое место карточки для перехода к полной статье. Кроме того, при использовании функций бесконечной прокрутки или кнопки «Загрузить еще» возникает проблема: новые карточки, подгруженные динамически, не наследуют поведение кликабельности.

Решение: JavaScript-скрипт

Чтобы решить эту проблему, мы можем использовать следующий JavaScript-код:


document.addEventListener('DOMContentLoaded', function() {
  // Находим родительский элемент, который содержит все посты
  const postsContainer = document.querySelector('.elementor-posts-container');

  if (postsContainer) {
    postsContainer.addEventListener('click', function(event) {
      // Находим ближайший родительский элемент с классом elementor-post
      const post = event.target.closest('.elementor-post');
      
      if (post) {
        const link = post.querySelector('.elementor-post__title a');
        if (link) {
          window.location.href = link.getAttribute('href');
        }
      }
    });
  }

  // Устанавливаем курсор pointer для всех постов
  function setCursorPointer() {
    const posts = document.querySelectorAll('.elementor-post');
    posts.forEach(post => {
      post.style.cursor = 'pointer';
    });
  }

  // Вызываем функцию сразу для изначальных постов
  setCursorPointer();

  // Наблюдатель за изменениями в DOM
  const observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
      if (mutation.type === 'childList') {
        setCursorPointer();
      }
    });
  });

  // Настройка наблюдателя
  const config = { childList: true, subtree: true };

  // Начинаем наблюдение
  observer.observe(postsContainer, config);
});

Как работает этот скрипт?

  1. Скрипт ищет контейнер с постами, используя класс .elementor-posts-container.
  2. Добавляет обработчик клика на весь контейнер.
  3. При клике на любой элемент внутри контейнера, скрипт находит ближайший родительский элемент с классом .elementor-post.
  4. Затем он ищет ссылку внутри заголовка поста и перенаправляет пользователя по этой ссылке.
  5. Устанавливает стиль курсора pointer для всех постов, чтобы визуально показать, что они кликабельны.
  6. Использует MutationObserver для отслеживания изменений в DOM, чтобы применить стиль курсора к новым, динамически загруженным постам.

Как использовать этот скрипт на сайте Elementor

  1. Перейдите в раздел «Elementor > Пользовательский код» в панели администратора WordPress.
  2. Нажмите «Добавить новый пользовательский код».
  3. Вставьте приведенный выше JavaScript-код в редактор.
  4. Установите «Расположение» на <body> – Конец, чтобы скрипт загружался после всего контента.
  5. Установите условия отображения, если необходимо (например, только на страницах блога).
  6. Опубликуйте код.

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

Помните, что этот скрипт специально разработан для работы с сайтами на Elementor, но может быть адаптирован и для других тем или плагинов WordPress путем изменения селекторов классов.

Поделиться записью

Telegram
WhatsApp
VK
Facebook
Email

Рекомендуем