Скрыть меню гамбургера на определенной странице в WordPress сайте

http://thehamburgercollection.com/

Мое меню гамбургеров работает правильно на всех других страницах - я просто не хочу, чтобы оно отображалось на домашней странице, где оно в настоящее время отображается в 768 пикселей и ниже.

В footer.php находится меню:

<div class="mobile-nav">
    <div class="menu-btn" id="menu-btn">
        <div></div>
        <span></span>
        <span></span>
        <span></span>
    </div>

    <div class="responsive-menu">
    <?php
        if ( ! is_front_page() && ! is_home() ) {
        wp_nav_menu();  
        } 
    ?>
    </div>
</div>

Вы можете видеть, что я сказал ему не отображать меню навигации на главной странице (которая также является домашней страницей), и он делает это правильно - но как мне сделать то же самое с меню гамбургера?

Я следовал инструкциям в этом уроке, чтобы создать меню для гамбургеров. Если я попытаюсь скопировать оператор PHP if, который говорит браузеру отображать меню Nav на всех других страницах, кроме главной страницы / домашней страницы, а затем вставить его непосредственно перед div с class и id "menu-btn", я получаю синтаксическая ошибка:

<div class="mobile-nav">
    <?php if ( ! is_front_page() && ! is_home() ) {
        <div class="menu-btn" id="menu-btn">
            <div></div>
            <span></span>
            <span></span>
            <span></span>
        </div>
    } 
    ?>

    <div class="responsive-menu">
    <?php
        if ( ! is_front_page() && ! is_home() ) {
        wp_nav_menu();  
    } 
    ?>
    </div>
</div>

Я не уверен, есть ли способ скрыть меню гамбургера на определенной странице с помощью CSS, или, если мне нужно использовать PHP или JS, где я должен разместить функцию / какую функцию использовать?

Спасибо!

3 ответа

Решение

Вы должны закрыть раздел PHP-кода, прежде чем печатать HTML-код.

<div class="mobile-nav">
    <?php if ( ! is_front_page() && ! is_home() ) : ?>
        <div class="menu-btn" id="menu-btn">
            <div></div>
            <span></span>
            <span></span>
            <span></span>
        </div>
    <?php endif; ?> 

    <div class="responsive-menu">
    <?php
        if ( ! is_front_page() && ! is_home() ) {
        wp_nav_menu();  
    } 
    ?>
    </div>
</div>

Вы смешиваете HTML с вашим PHP,

Попробуй это:

<?php if ( ! is_front_page() && ! is_home() ) { ?>
    <div class="menu-btn" id="menu-btn">
        <div></div>
        <span></span>
        <span></span>
        <span></span>
    </div>
<?php } ?>

Объяснение:

Как вы можете видеть, у вас есть <div>...</div> внутри вашего PHP, Вам нужно сначала закрыть свой php-section, а затем опубликовать свой html, а затем вы должны положить конец if,

Вам просто нужно ?> после вашего if(...) {

Надеюсь это поможет.

Вы можете сделать так:

 <?php if ( ! is_front_page() && ! is_home() ) {
<div class="mobile-nav">
        <div class="menu-btn" id="menu-btn">
            <div></div>
            <span></span>
            <span></span>
            <span></span>
        </div>


    <div class="responsive-menu">
    <?php
        wp_nav_menu();  
    ?>
    </div>
</div>
 } 
 ?>
Другие вопросы по тегам