Как проверить, активна ли страница блога


Потерпите меня здесь, пока я объясняю свою проблему.

Сгенерированное меню через 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

Как я могу проверить это иначе, чтобы пункт меню блог подчеркивался только тогда, когда страница активна?

 1
Author: helenhousandi, 2011-09-13

2 answers

Для page_for_posts есть опция сайта, так что вы можете попробовать if ( is_page( get_option('page_for_posts') ) ).

Редактировать: Согласно Кодексу, is_home() сообщит вам, находитесь ли вы на странице блога, когда у вас есть статическая главная страница: http://codex.wordpress.org/Conditional_Tags#The_Main_Page . Я не могу проверить это прямо сейчас, но если это правда, то это должно быть то, что вы ищете. Наверное, мне не приходилось делать этого раньше, действительно приятно знать.

 1
Author: helenhousandi, 2011-09-13 22:04:28

РЕШЕНО

Эгады! После множества испытаний я где-то нашел сообщение, в котором упоминалось использование глобальной переменной $pagename для ссылки на слизняк страницы. Вот мой рабочий тест, чтобы проверить, активна ли страница блога (пуля "the-blog"):

    <?php if ($pagename == 'the-blog') { ?>

Достаточно просто, а? Спасибо @helenhousandi за ваши советы и рекомендации!

 0
Author: , 2011-09-13 20:15:11