Если постоянная ссылка равна текущему URL сайта

28 февр. 2013 г., 18:00:36
Просмотры: 13.7K
Голосов: 3

Есть ли способ добавить класс к div, когда текущий URL сайта совпадает с постоянной ссылкой записи?

Мне нужно добавить класс "current" в мое пользовательское меню. Я размещаю ссылки на записи в элементах списка через цикл, и для каждой ссылки хочу проверить, совпадает ли постоянная ссылка с текущим URL страницы. Если они совпадают, нужно добавить класс "current".

Что-то вроде:

<?php $currentUrl = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
<?php if ( $currentUrl == the_permalink() ) { echo ' class="current"'; } else {} ?>

Вместе с циклом:

<?php $currentUrl = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>

<?php query_posts('orderby=name'); ?>
<?php while (have_posts()) : the_post(); ?>

   <li>
       <a <?php if ( $currentUrl == the_permalink() ) { echo ' class="current"'; } else {} ?>
       href="<?php the_permalink() ?>">
          <?php the_title() ?>
       </a>
   </li>

<?php endwhile; ?>
<?php wp_reset_query(); ?>
0
Все ответы на вопрос 1
1

Я бы сделал что-то проще, используя ID:

<?php $current_id = $post->ID; ?>
<?php query_posts('orderby=name'); ?>  
<?php while (have_posts()) : the_post(); ?>

   <li>
       <?php $current_class = ( $current_id == $post->ID ) ? 'class="current"' : ''; ?>
       <a <?php if ( $current_class ) echo $current_class; ?> href="<?php the_permalink() ?>">
          <?php the_title() ?>
       </a>
   </li>

<?php endwhile; ?>
<?php wp_reset_query(); ?>

У меня не было времени проверить код, надеюсь, это поможет.

28 февр. 2013 г. 18:18:40
Комментарии

Пожалуйста. Я делаю небольшую правку, чтобы ничего не выводилось.

Simon Simon
28 февр. 2013 г. 22:13:21