Как проверить, активна ли страница блога
Потерпите меня здесь, пока я объясняю свою проблему.
Сгенерированное меню через wp_nav_menu, поэтому я использую класс .current_page_item. Дело в том, что я использовал jQuery для замены сгенерированного текста ссылки некоторыми созданными мной пользовательскими изображениями, и теперь я должен использовать jQuery, чтобы поменять изображение так, чтобы кнопка выглядела "подчеркнутой". Теперь я заставил его работать на всех моих страницах, КРОМЕ страницы блога. Страница блога указана на вкладке "Настройки" > "Чтение", и главная страница = Главная страница, страница блога = Блог.
Вот мой код jQuery, чтобы попытаться проверить, является ли текущая страница блогом:
$('#menu-item-75 a').empty()
.append('<img id="blog-btn" src="<?php bloginfo('template_url'); ?>/images/blog-btn.png" />');
// tests if blog page is active, swaps images depending on test result
<?php if (is_page('Blog')) { ?>
$('#menu-item-75 img').attr('src', '<?php bloginfo('template_url'); ?>/images/blog-btn-hover.png');
<?php } else { ?>
$('#menu-item-75 img').mouseenter(function () {
$(this).attr('src', '<?php bloginfo('template_url'); ?>/images/blog-btn-hover.png');
}).mouseleave(function() {
$(this).attr('src', '<?php bloginfo('template_url'); ?>/images/blog-btn.png');
})
<?php } ?>
Мы будем очень признательны за любую помощь/советы/рекомендации! Спасибо!
* РЕДАКТИРОВАТЬ * Проблема еще не решена, ОДНАКО, я думаю, что приближаюсь к ней. Я попробовал еще несколько вещей:
<?php if (is_page(get_option('page_for_posts'))) { ?> // doesn't work
<?php if (get_option('page_for_posts')) { ?> // WORKS, but leaves menu item underlined all the time instead of only if the blog page is active
Как я могу проверить это иначе, чтобы пункт меню блог подчеркивался только тогда, когда страница активна?
2 answers
Для page_for_posts
есть опция сайта, так что вы можете попробовать if ( is_page( get_option('page_for_posts') ) )
.
Редактировать: Согласно Кодексу, is_home()
сообщит вам, находитесь ли вы на странице блога, когда у вас есть статическая главная страница: http://codex.wordpress.org/Conditional_Tags#The_Main_Page . Я не могу проверить это прямо сейчас, но если это правда, то это должно быть то, что вы ищете. Наверное, мне не приходилось делать этого раньше, действительно приятно знать.
РЕШЕНО
Эгады! После множества испытаний я где-то нашел сообщение, в котором упоминалось использование глобальной переменной $pagename для ссылки на слизняк страницы. Вот мой рабочий тест, чтобы проверить, активна ли страница блога (пуля "the-blog"):
<?php if ($pagename == 'the-blog') { ?>
Достаточно просто, а? Спасибо @helenhousandi за ваши советы и рекомендации!