@I_want_to_know

Как сделать ссылку по id?

Не кидайтесь тухлыми помидорами, прошу.
Вводные:
Есть страница WP, на этой странице есть две вкладки "Было" и "Будет"
По умолчанию, при переходе на страницу из пункта меню, активная вкладка "Будет".
Задача:
Делаю кнопку на главной странице, для вкладки "Было"
Вопрос:
Как вывести (создать) ссылку по ID что бы при переходе по ссылке, активная вкладка была "Было"?
Другими словами:
Из пункта меню переходим на страницу - в этом случае, активная вкладка "Будет";
Переход по кнопке с главной страницы - активная вкладка "Было".
Проблема:
ссылка вида: домен/страница/#id не работает как надо мне
Вот сам код:
<div class="tabs">
  <ul class="tab-menu tab-list">
    <li class="tab-list__item active"><a href="#will-be">Будет</a></li>
    <li><a href="#was">Было</a></li>
  </ul>

  <div class="tab-content active" id="will-be">
    <div class="rotate-block">
      <?php
      $args = array(
        'post_type' => 'cards', // Тип записи
        'meta_type' => 'DATETIME',
        'meta_query' => array(
          array(
            'key' => 'data_cont', // Поле даты
            'value' => date('Y-m-d'), // Только даты, которые еще не наступили
            'compare' => '>=',
            'type' => 'DATETIME'
          )
        ),
        'posts_per_page' => -1,
        'orderby' => 'meta_value_num',
        'meta_key' => 'data_cont',
        'order' => 'ASC'
      );
      $query = new WP_Query($args);

      if ($query->have_posts()) :
        while ($query->have_posts()) : $query->the_post();
          get_template_part('template-parts/content', 'cards');
        endwhile;
        wp_reset_postdata();
      else :
        echo '<p>Нет записей для отображения</p>';
      endif;
      ?>
    </div>

  </div>

  <div class="tab-content" id="was">
    <div class="rotate-block">
      <?php
      $args = array(
        'post_type' => 'cards', // Тип записи
        'meta_type' => 'DATETIME',
        'meta_query' => array(
          array(
            'key' => 'data_cont', // Поле даты
            'value' => date('Y-m-d'), // Только даты, которые уже прошли
            'compare' => '<',
            'type' => 'DATETIME'
          )
        ),
        'posts_per_page' => -1,
        'orderby' => 'meta_value_num',
        'meta_key' => 'data_cont',
        'order' => 'DESC'
      );
      $query = new WP_Query($args);

      if ($query->have_posts()) :
        while ($query->have_posts()) : $query->the_post();
          get_template_part('template-parts/content', 'cards');
        endwhile;
        wp_reset_postdata();
      else :
        echo '<p>Нет записей для отображения</p>';
      endif;
      ?>
    </div>
    <div class="load">
      <button id="show-more">Показать ещё</button>
    </div>
  </div>
</div>

и js:
<script>
	document.addEventListener("DOMContentLoaded", function() {
		const tabMenuItems = document.querySelectorAll('.tab-menu li');
		const tabContentItems = document.querySelectorAll('.tab-content');

		tabMenuItems.forEach((item, index) => {
			item.addEventListener('click', () => {
				// Удаляем класс active у всех элементов
				tabMenuItems.forEach((menuItem) => {
					menuItem.classList.remove('active');
				});
				tabContentItems.forEach((contentItem) => {
					contentItem.classList.remove('active');
				});

				// Добавляем класс active к выбранной вкладке
				item.classList.add('active');
				tabContentItems[index].classList.add('active');
			});
		});
	});
</script>
  • Вопрос задан
  • 627 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dudaevfrontend
Если я правильно понял, и проблема в том что на лендинге есть два блока и нужно пролистать до нужного до добавьте для блока id, а для кнопки href="id кнопки"
Ответ написан
Prakop
@Prakop
Как я понял переход не скролом к блоку идет, а блоки в виде табов
Можно тогда использовать запросы типо домен/страница/?blok=bylo
Потом на странице смотрим пришло нам blok=bylo или нет, и тогда уже делаем что надо
И через php можно и через js
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект