Изменить класс в зависимости от того, какая категория была найдена - PullRequest
0 голосов
/ 15 июля 2010

Я использую следующий код, чтобы выделить пункт меню, если сообщение находится в этой категории или выбрана категория:

<a href="/category/presets/photoshop_actions" title="Only Photosshop Actions"
        <?php if (is_category(photoshop_actions) || is_single() && in_category('47')) {
            echo ' class="rounded rounded_active" ';}
            else{
            echo ' class="rounded" ';}  
        ?>
        >
        <span>
            Photoshop Actions
        </span>
    </a>

Так вот в чем дело: я также хочу, чтобы был установлен класс rounded_active, если был выполнен поиск в категории - скажем, URL выглядит так, когда поиск был выполнен: http://localhost:8888/?cat=47&s=boats Как развернуть приведенный выше код, чтобы проверить, является ли категория с идентификатором 47 частью поискового запроса, а затем повторить

class="rounded rounded_active"

1 Ответ

1 голос
/ 15 июля 2010
<?php $active = is_category('photoshop_actions') || in_category(47) || get_query_var('cat') == 47; ?>

<a href="/category/presets/photoshop_actions" title="Only Photosshop Actions" class="rounded<?php echo $active ? ' rounded_active' : ''; ?>">
    <span>Photoshop Actions</span>
</a>

Оператор PHP внутри атрибута класса представляет собой сокращение if.

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

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