@Nikitos08

Как подсветить активный пункт в произвольном меню wordpress?

Есть простое меню не прикручено к админке wordpress как сделать так, что бы активный пункт подсвечивался? Не используя wp_nav_menu и.т.д
  • Вопрос задан
  • 7742 просмотра
Пригласить эксперта
Ответы на вопрос 2
Immortal_pony
@Immortal_pony Куратор тега PHP
Предположу, что вывод этого меню выглядит как-то так:

<ul>
    <? foreach ($menu as $item) { ?>
        <li>
            <a href="<?= $item->link ?>"><?= $item-title ?></a>
        </li>
    <? } ?>
</ul>


Тогда его надо изменить примерно так:
<ul>
    <? $current_url = add_query_arg($wp->query_string, "", home_url( $wp->request)) ?>
    <? foreach ($menu as $item) { ?>
        <li <?= $current_url == $item->link ? "class='current'" : ""?>
            <a href="<?= $item->link ?>"><?= $item-title ?></a>
       </li>
    <? } ?>
</ul>
Ответ написан
@Nikitos08 Автор вопроса
fImmortal_pony:
Не могу я побороть проблему (
<ul id="main-menu">
				<li><a href="/">Главная</a></li>
				<li>

				<a href="/about">О компании</a>

					<ul>
						<li><a href="/our-manufacturing">Наше производство</a></li>
						<li><a href="/cooperation">Сотрудничество</a></li>
						<li><a href="/guarantee-сertificates">Гарантия, Сертификаты</a></li>
						<li><a href="/news">Новости</a></li>
						<li><a href="/our-clients">Наши клиенты</a></li>
					</ul>

				</li>
				<li><a href="/about-technology">О технологии</a></li>
				<li><a href="/objects">Обьекты</a></li>
				<li><a href="/goods_caregory/all/">Проекты</a></li>
				<li>
				<a href="/services">Услуги</a>

					<ul>
						<li><a href="/calculate-project">Рассчитать проект</a></li>
						<li><a href="/individual-project">Индивидуальный проект</a></li>
						<li><a href="/landscaping">Ландшафтный дизайн</a></li>

					</ul>

				</li>
				<li>
				<a href="">Цены</a>
					<ul>
						<li><a href="/domokomplekt">Домокомплект</a></li>
						<li><a href="/box-house">Коробка дома</a></li>
						<li><a href="/turnkey">Под ключ</a></li>

					</ul>
				</li>
				<li><a href="/contacts">Контакты</a></li>
			</ul>


#main-menu {
	position: relative;
	padding: 0;
	margin-top: 15px;
	float: right;
	font-size: 14pt;
}	

#main-menu ul {
	overflow: hidden; 
	zoom: 1;
}
#main-menu li {
	list-style: none; 
	float: left; 
	border-left: 1px solid #BCBCBC; 
	padding: 0 20px; 
	margin: 0 1px 0 -1px;
	position: relative;
	z-index: 2;
	

}

#main-menu li ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: none;
	position: absolute;
	left: 0;
	}

#main-menu li ul li {
	float: none;
	margin: 0;
	text-align: left;
	font-size: 11pt;
	background: #fff;
	width: 130px;
	padding-top: 3px;
	padding-bottom: 3px;
	border: 0;
	}
#main-menu li a {
	display: block;
	color: #333333;
	text-decoration: none;
	}
#main-menu li a:hover {
	color: #b2b935;
	text-decoration: none;
	}	
#main-menu li:active {
	color: #b2b935;
	text-decoration: none;
}

#main-menu li:hover ul, #menu li.jshover ul {
	display: block;
	border-radius: 10px;
	box-shadow: 0 5px 5px #b7b7b7;
	z-index: 2;
	
}

#main-menu li:first-child {
            border: inherit;
}

.current {
	color: #b2b935;
	text-decoration: none;
}


$(function () {
  $('#menu li a').each(function () {
    var location = window.location.href;
    var link = this.href;                
    if(location == link) {
      $(this).addClass('current');
    }
  });
});

// Стили и JS

function enqueue_styles() {

wp_register_style( 'screen-style', THEME_DIR . '/style.css', array(), '1', 'all' );
wp_enqueue_style( 'screen-style' );

}

add_action( 'wp_enqueue_scripts', 'enqueue_styles' );

function my_scripts_method(){
wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

function greenhouse_enqueue_js() {
wp_enqueue_script('resize', THEME_DIR . '/js/main-menu.js', array('jquery'));
}

add_action('wp_enqueue_scripts', 'greenhouse_enqueue_js');
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы