а полный код, который в итоге получился приведите тут.
не совсем понятно, на фига вы в див clearfix запихнули меню — этот класс, обычно, используется как раз для сброса всех установленных стилей, а не наоборот.
PS код стиля тоже бы не помешало указать.
самый первый код, что я написал — это то, что у меня написано где вызывается второстепенное меню.
последний — это тот, на который я его заменил.
я пошаманил — поменял на такой код:
<?php if (!is_user_logged_in()): ?>
<div id="menu-secondary-container"> // в файле <strong>styles.css</strong> я нашел этот класс, но особо не помогло
<?php wp_nav_menu(array('theme_location' => 'secondary-out')); ?>
</div>
<?php else: ?>
<div id="menu-secondary-container">
<?php wp_nav_menu(array('theme_location' => 'secondary-in')); ?>
</div>
<?php endif ?>
также выводится простым списком. вот, посмотрите сайт.
в заолгиненой версии там есть еще один пункт меню.
вот что у меня написано в файле style.css по поводу второстепенного меню.
/* Menu Secondary
----------------------------*/
.menu-secondary-container {
position:relative;
height: 40px;
z-index: 300;
background: url(images/menu-secondary-bg.png) left top repeat-x;
border-bottom: 3px solid #F8B530;
}
.menu-secondary {}
.menu-secondary ul {
min-width: 160px;
}
/* First Level - Menu Secondary */
.menu-secondary li a {
color: #FFFFFF;
padding: 15px 15px 14px 15px;
text-decoration: none;
font-family: 'LazurskiC', sans-serif;
font-size: 13px;
text-transform: uppercase;
font-weight: normal;
text-shadow: 0 1px 0 #4B4B4B;
}
.menu-secondary li a:hover, .menu-secondary li a:active, .menu-secondary li a:focus,
.menu-secondary li:hover > a, .menu-secondary li.current-cat > a, .menu-secondary li.current_page_item > a, .menu-secondary li.current-menu-item > a {
color: #FFFFFF;
background: url(images/menu-secondary-bg.png) left -140px repeat-x;
outline: 0;
text-shadow: 0 1px 0 #4B4B4B;
}
/* Child Levels - Menu Secondary */
.menu-secondary li li a {
color: #fff;
background: #6D6D6D;
padding: 10px 15px;
text-transform: none;
margin: 0;
font-weight: normal;
text-shadow: none;
}
.menu-secondary li li a:hover, .menu-secondary li li a:active, .menu-secondary li li a:focus,
.menu-secondary li li:hover > a, .menu-secondary li li.current-cat > a, .menu-secondary li li.current_page_item > a, .menu-secondary li li.current-menu-item > a {
color: #fff;
background: #F8B530;
outline: 0;
text-shadow: none;
}
/* Arrows - Menu Secondary */
.menu-secondary a.sf-with-ul {
padding-right: 26px;
min-width: 1px;
}
.menu-secondary .sf-sub-indicator {
position: absolute;
display: block;
overflow: hidden;
right: 0;
top: 0;
padding: 14px 13px 0 0;
}
.menu-secondary li li .sf-sub-indicator {
padding: 9px 13px 0 0;
}
/* Shadows - Menu Secondary */
.wrap-menu-secondary .sf-shadow ul {
background: url('images/menu-secondary-shadow.png') no-repeat bottom right;
}
в стилях .menu-secondary — в коде же ID, то есть #menu-secondary
это как минимум, один косяк. с .menu-secondary-container тот же косяк.
ну, косяк, косяком, но до того, как я решил сделать два secondary меню все показывало норм. это у меня тема такая интересная 🙂
можете как-то посоветовать, чтобы стиль применялся к обоим меню?
еще раз — или измените id на class или в styles вместо точки пишите #
понял. я просто в этом синтаксисе не очень сведущ.. в принципе потому и обратился сюда.
привел код к такому виду:
<?php if($theme->display('menu_secondary')) { ?>
<div class="menu-secondary">
<?php
if (!is_user_logged_in()) :
wp_nav_menu(array('theme_location' => 'secondary-out'));
else :
wp_nav_menu(array('theme_location' => 'secondary-in'));
endif;
?>
</div>
<?php } ?>
немного помогло, но как-то не очень
стиль применился, но формат остался в виде списка..
одно понять не могу — там изначально никакой стиль не применялся, почему сейчас не применяется?
вы издеваетесь? 🙂
вот эта конструкция:
<?php if($theme->display('menu_secondary')) { ?>
<div class="menu-secondary">
у вас вообще не срабатывает.
а поэтому стили и не применяются.
да нет, не издеваюсь, я пытаюсь решить проблему 🙂
и сюда написал, вдруг помогут 🙂
я просто в php коде вперемешку с html не шарю. я только html учил очень давно 🙂
не ругайте, вот к чему я пришел — думаю, все будет верно, только у меня проблема с синтаксисом, я понимаю.
я просто вставил код который у меня был в код выбора.
<?php if (!is_user_logged_in()) {
<?php if($theme->display('menu_secondary-in')) { ?>
<div class="clearfix">
<?php $theme->hook('menu_secondary'); ?>
</div>
<?php } ?>
} else {
<?php if($theme->display('menu_secondary-out')) { ?>
<div class="clearfix">
<?php $theme->hook('menu_secondary'); ?>
</div>
<?php } ?>
} ?>
не. с этим кодом вообще сайт не грузится.
Попробуйте так:
<?php if (!is_user_logged_in()) { ?>
<?php if($theme->display('menu_secondary-in')) { ?>
<div class="clearfix">
<?php $theme->hook('menu_secondary'); ?>
</div>
<?php } ?>
<?php } else { ?>
<?php if($theme->display('menu_secondary-out')) { ?>
<div class="clearfix">
<?php $theme->hook('menu_secondary'); ?>
</div>
<?php } ?>
<?php } ?>
о! класс! все правильно! только одна проблема.
у меня-то прописан только один класс — menu_secondary, подписи в конце — -in и -out не канают.
оно ведь как раз этой строкой подхватывает стиль темы и пункты меню.
теперь вопрос геммороя третьего уровня. как сделать, чтобы он подхватывал стиль от того меню, а само меню было другим…
я в этом плане уже точно не знаю. за последние две недели с ног на голову код перелопатил….
в стилях исправьте. например вместо
.menu-secondary {}
пишите
.menu-secondary-out, .menu-secondary-in {}
и так для всех стилей меню.
я в стили вообще прописал копии от основной menu-secondary.
нашел в просторах интернета другой вариант:
//добавляем нужные кнопки в меню
add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
$loginoutlink = wp_loginout('index.php', false);
if(!is_user_logged_in())
$items .= '';
else
$items .= '<li><a href="/pers/">Personal</a></li>';
$items .= '<li><a href="/wp-admin/">Админка</a></li>';
$items .= '<li>'. $loginoutlink .'</li>';
return $items;
}
код, как ни странно, работает, добавляя кнопки, что мне нужны. правда я понять не могу, почему он как-то наоборот это делает. else — это же вроде «если в условии ответ нет».
да и тем более он добавляет все равно кнопки «Админка» и «Вход», если пользователь не зарегистрирован — мне эти кнопки не нужны..