Невозможно установить класс List Item в PHP для сайта WordPress. - PullRequest
0 голосов
/ 19 августа 2010

Я ищу лучший способ установить класс currentmenu элемента списка, чтобы показать пользователю текущее активное меню, выбранное с помощью php.

Я переместил свой html / css-сайт в WordPress, но изначально весь мой код содержался в моем файле index.html, который состоял из функции sidemenu div и jQuery для переключения между активными выборами меню.

Код, который у меня изначально есть в моем index.html:

HTML-код для меню боковой панели с использованием Superfish:

    <div id="sidebar">
        <ul id="themenu" class="sf-menu sf-vertical">
            <li><a href="index.php" class="topm currentMenu nosub">Home</a></li>
            <li><a href="about-us.php" class="topm nosub">About Us</a></li>
       </ul>
</div>

jQuery-код для переключения текущего активного меню:

$("ul.sf-menu li a").click(function() {
    $("ul.sf-menu li a").not(this).removeClass("currentMenu");
    $(this).toggleClass("currentMenu");
});

Поскольку все это было в одном файле index.html, все работало нормально.

Теперь с переходом на WordPress и, таким образом, перемещением моего меню div боковой панели в свой собственный файл sidebar.php и в дополнение к этому, создав индивидуальную пользовательскую страницу wp для about-us.php, которая вызывает файл sidebar.php, У меня возникает следующая проблема, и я хочу определить наилучшие способы ее решения.

Проблема заключается в том, что когда пользователь впервые заходит на сайт, файл index.php запускается и, исходя из вышесказанного, меню «Домой» в настоящее время является активным меню на основе значения класса по умолчанию. Но когда пользователь нажимает на пункт меню «О нас», который затем вызывает мою созданную мной страницу about-us.php, которая также вызывает файл sidebar.php, текущее активное меню по-прежнему остается параметром меню «Домой», который не правильно.

Как я могу сделать пункт меню «О нас» теперь активным, то есть теперь для класса «О нас» теперь установлен класс «CurrentMenu», так как я не уверен, как подойти к этому в php, так как мой код переключения jQuery больше не работает работает?

Я предлагаю иметь дополнительные опции меню с их собственными шаблонами страниц WordPress, вызывающими файл sidebar.php, и поэтому мне нужно будет установить эти опции меню как class = "currentMenu".

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Похоже, вы ищете условные теги WordPress. Например:

<div id="sidebar">
    <ul id="themenu" class="sf-menu sf-vertical">
        <li><a href="index.php" class="topm <?php if (is_home()) { echo "currentMenu"; } ?> nosub">Home</a></li>
        <li><a href="about-us.php" class="topm <?php if (is_page('about-us')) { echo "currentMenu"; } ?> nosub">About Us</a></li>
   </ul>
</div>

Первая строка навигации проверяет, является ли текущая страница домашней страницей, и если так, то печатает необходимый тег для меню. Вторая строка проверяет, является ли страница страницей about-us, где about-us - это post_name (slug). Вы также можете использовать идентификатор сообщения. Для большего количества примеров / ссылок доступных соответствующих тегов, проверьте мою ссылку ниже. Надеюсь, это поможет.

Ссылка: http://codex.wordpress.org/Conditional_Tags
Справка: http://codex.wordpress.org/Dynamic_Menu_Highlighting

Чтобы сделать это в стандартном PHP, избегая использования WordPress в качестве платформы, вы можете сделать что-то вроде этого или просто назначить переменную для конкретных страниц напрямую:

<?php
$path = $_SERVER['PHP_SELF'];    // get the path to the file
$page = basename($path);         // grab the filename
$page = basename($path, '.php'); // remove the .php extension
?>

<div id="sidebar">
    <ul id="themenu" class="sf-menu sf-vertical">
        <li><a href="index.php" class="topm <?php if ($page == "index") { echo "currentMenu"; } ?> nosub">Home</a></li>
        <li><a href="about-us.php" class="topm <?php if ($page == "about-us") { echo "currentMenu"; } ?> nosub">About Us</a></li>
   </ul>
</div>
0 голосов
/ 19 августа 2010

Чтобы добавить определенный класс на текущую страницу в меню боковой панели (или в любом меню), вам нужно прочитать динамическое выделение меню в документации WordPress. Вы также можете попробовать плагин, такой как dTabs , чтобы упростить себе задачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...