2014-12-15 3 views
2

나는이 wordpress 사이트를 가지고있다. 그리고 두 가지 메뉴를 만들었 어. 사용자가 로그인하지 않았을 때 표시되는 것으로 가정하고 사용자가 로그인 할 때 표시되는 계정입니다. 그리고 대시 보드가 아닌 웹 사이트에 로그인하는 것에 대해 이야기합니다.로그인 한 후 Wordpress에서 메뉴를 변경할 수 있습니까?

내가 로그인하지 않은 곳에서 내가있는 곳으로 메뉴를 변경하려면 어떻게해야합니까?

다음 코드를 functions.php 페이지에 추가하려고했지만 작동하지 않습니다.

function my_wp_nav_menu_args($args = '') { 
if(session_status() != PHP_SESSION_NONE) { 
$args['menu'] = 'logged-in'; 
} else { 
$args['menu'] = 'logged-out'; 
} 
return $args; 
} 
add_filter('wp_nav_menu_args', 'my_wp_nav_menu_args'); 

어디서 볼지 잘 모르겠습니다. Google에서 해결 방법을 찾을 수 없습니다. 누군가 나를 도울 수 있기를 바랍니다!

저는 또한 session_start()가 있는지 확인했습니다. 모든 .php 페이지의 맨 위에.

+1

좋아 그 주셔서 감사합니다! –

+0

세션 상태를 확인하는 것보다는 [is_user_logged_in()] (http://codex.wordpress.org/Function_Reference/is_user_logged_in)에 더 많은 행운이있을 수 있습니다. "잘 작동하지 않는다"고 설명 할 수 있다면 더 많은 도움을 드릴 수 있습니다. 정확히 코드에서 어떤 일이 발생할 것으로 예상합니까? 그리고 그와 다른 상황이 발생하고 있습니까? –

+0

아 맞다! 그럼 메뉴를 바꾸고 싶습니다. 그래서 사람이 로그인하면, 메뉴는 로그인 한 사람으로 바뀌고 그렇지 않은 사람은 로그 아웃 된 사람으로 바뀌어야합니다. 그리고 로그 아웃 된 상태로 머물러 있습니다. 데이터베이스를 사용하여 로그인 할 때 is_user_logged_in은 어떻게 작동합니까? –

답변

1

당신은 2 개 개의 다른 메뉴를 만들 수있는 간단한 다른 경우 사용을 편집합니다,

<?php 
    if (is_user_logged_in()) { 
     wp_nav_menu(array('theme_location' => 'registered-menu')); 
    } else { 
     wp_nav_menu(array('theme_location' => 'visitor-menu')); 
    } 
?> 
+0

글쎄, 내가 아는 바로는, 만약 사용자가 대시 보드에 로그인했는지 확인하면. 그건 내가 확인하고 싶은게 아니야. 내가 itito 내 login.php 파일을 확인하고 공통 registred 사용자에 대한 메뉴를 변경하고 싶습니다. –

관련 문제