• В общем нашел способ убрать ссылку в меню с главной страницы на главную страницу:

    <?php
    if(!is_front_page() || is_paged())
    echo "<a href="http://yoursite.net/" title="Перейти на главную страницу">YourSite.net</a>";
    else
    echo "YourSite.net";
    ?>

    Так вот не работает. Отображается и на главной и не на главной… Может тут с синтаксисом что-то не то?

Просмотр 15 ответов — с 1 по 15 (всего 19)
  • Попробуйте is_home() вместо is_front_page() если у вас не статическая страница на главной.

    <?php
    if( !is_home() )
      echo "YourSite.net"; // ссылка
    else
      echo "YourSite.net"; // не ссылка
    ?>

    Пробовал… тоже не работает. Мне кажется, я все таки куда-то не туда пытаюсь этот код вставить… а именно я пытаюсь вставить в меню вида:

    <br /><div id="nav">
    <div class="menu-glavnoe-menyu-container"><ul id="menu-glavnoe-menyu" class="menu">
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Главная страница" href="http://site.ru/">Главная</a></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Форум" href="http://forum.site.ru/">Форум</a></li>
    
    <noindex>
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Подписывайтесь на наш Twitter" href="https://twitter.com/site">Twitter</a></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Наш RSS канал" href="http://site.ru/feed/">RSS</a></li>
    </noindex>
    
    </ul></div>
    	</div>

    Это не совсем меню… я в место для рекламы вручную вставил код, скопированный из меню (приведен выше), т.е. оно через админку wordpress не редактируется.

    <?php
    if( !is_home() )
      echo '<a href="http://yoursite.net/" title="Перейти на главную страницу">YourSite.net</a>';
    else
      echo 'YourSite.net';
    ?>

    C кавычками намудрили. Попробуйте сейчас.

    Если вышеприведенный код просто вставить… выводит в меню на всех страницах:

    YourSite.net’; else echo ‘YourSite.net’; ?>

    Т.е. не совсем то…

    Куда вы его вставляете? Обратите внимание, на то, что он обернут в php теги.

    Так вот в том то и дело, что судя по всему не туда)) Я строитель, не программист совсем.

    Пробовал так:

    <br /><div id="nav">
    <div class="menu-glavnoe-menyu-container"><ul id="menu-glavnoe-menyu" class="menu">
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Главная страница" href="http://site.ru/">Главная</a></li>
    
    <?php
    if( !is_home() )
      echo '<a href="http://yoursite.net/" title="Перейти на главную страницу">YourSite.net</a>';
    else
      echo 'YourSite.net';
    ?>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Форум" href="http://forum.site.ru/">Форум</a></li>
    
    <noindex>
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Подписывайтесь на наш Twitter" href="https://twitter.com/site">Twitter</a></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Наш RSS канал" href="http://site.ru/feed/">RSS</a></li>
    </noindex>
    
    </ul></div>
    	</div>

    Пробовал так:

    <br /><div id="nav">
    <div class="menu-glavnoe-menyu-container"><ul id="menu-glavnoe-menyu" class="menu">
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Главная страница - строительство и ремонт частных домов" href="http://housejournal.ru/">Главная</a></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><?php
    if( !is_home() )
      echo '<a href="http://yoursite.net/" title="Перейти на главную страницу">YourSite.net</a>';
    else
      echo 'YourSite.net';
    ?></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Форум о строительстве и ремонте частных домов" href="http://forum.housejournal.ru/">Форум</a></li>
    
    <noindex>
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Подписывайтесь на наш Twitter" href="https://twitter.com/HouseJournal">Twitter</a></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Наш RSS канал" href="http://housejournal.ru/feed/">RSS</a></li>
    </noindex>
    
    </ul></div>
    	</div>

    Существующее меню даже не менял пока, вставлял в центре его новый код в качестве эксперимента.

    В файле header.php рекламный блок, в котором я редактирую меню вставляется следующим кодом:

    <?php if (max_magazine_get_option( 'ad468' )) {?>
    			<div class="ad468">
    				<?php echo max_magazine_get_option( 'ad468' ); ?>
    			</div>
    		<?php } ?>

    Вот пример для вашего меню:

    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40">
       <?php
       if( ! is_home() )
          echo '<a title="Главная страница" href="http://site.ru/">Главная</a>';
       else
          echo 'Главная';
       ?>
    </li>

    dikiy_forester, при вставке такого кода получается вывод такого текста

    Главная’; else echo ‘Главная’; ?>

    на каждой странице — без разницы главная не главная… ну и без активной ссылки везде.

    Я не совсем понял, что вы делаете с эти кодом?

    <?php if (max_magazine_get_option( 'ad468' )) {?>
    			<div class="ad468">
    				<?php echo max_magazine_get_option( 'ad468' ); ?>
    			</div>
    		<?php } ?>

    Вы в него вставляете код меню? Как эти два куска кода связаны у вас?

    В шаблоне max magazine реализован вывод рекламного баннера в шапке сайта. Это место я посчитал наиболее подходящим для меню и скопировал код меню туда. Код для рекламного места редактируется из настроек шаблона в админке.

    Вот этой строчкой
    <?php echo max_magazine_get_option( 'ad468' ); ?>
    я так понимаю код рекламного места со вставленным в него меню вызывается из файла header.php.

    А сам код меню у вас хранится в настройках темы? В этом случае php код будет экранирован и вы получите то что вы уже видели.

    Сделайте так:
    в файле header.php
    это:

    <?php if (max_magazine_get_option( 'ad468' )) {?>
    			<div class="ad468">
    				<?php echo max_magazine_get_option( 'ad468' ); ?>
    			</div>
    		<?php } ?>

    замените на это:

    <div class="ad468">
    <div id="nav">
    <div class="menu-glavnoe-menyu-container"><ul id="menu-glavnoe-menyu" class="menu">
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40">
       <?php
       if( ! is_home() )
          echo '<a title="Главная страница" href="http://site.ru/">Главная</a>';
       else
          echo 'Главная';
       ?>
    </li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a title="Форум" href="http://forum.site.ru/">Форум</a></li>
    
    <noindex>
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Подписывайтесь на наш Twitter" href="https://twitter.com/site">Twitter</a></li>
    
    <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40"><a rel="nofollow" title="Наш RSS канал" href="http://site.ru/feed/">RSS</a></li>
    </noindex>
    
    </ul></div>
    	</div>
    </div>

    А вообще, не стоит вносить изменения в чужие темы и WP.

    Сделайте дочернюю тему и меняйте основную тему так, как вам нужно.

    В данном случае это актуально.

    После вставки вышеприведенного кода в header.php получилось очень близко к желаемому. На главной странице действительно теперь ссылки нет, а только текст. Но текст почему-то другой по стилю и смещенный относительно остальных пунктов. Не знаете, как это победить?

    Выглядит сейчас это так: http://clip2net.com/s/2PsEG

    dikiy_forester, в любом случае ОГРОМНОЕ спасибо! Даже, если вообще текст «Главная» с главной убрать — потеря не большая. Единственное, что меню разного размера на разных страницах будет.

    Это потому, что стили применяемые для ссылок меню не работают для простого текста.

    Сделайте вот что:

    вместо
    echo 'Главная';

    вставьте
    echo '<span class="menu-item-main">Главная</span>';

    Этим вы обернули слово «Главная» в тэг <span> и назначили ему класс «menu-item-main»

    Теперь вам нужно найти все стили применяемые для ссылок в этом меню и назначить их для класса «menu-item-main».

    В общем виде это так.

Просмотр 15 ответов — с 1 по 15 (всего 19)

Тема «Удаление рекурсивной ссылки с главной на главную» закрыта для новых ответов.