情况: 我正在建立一个Wordpress网站。向下滚动页面时,菜单变为“固定”到页面顶部(http://deerfielddesigns.com.mlseo.net/)。当我登录到wordpress时,仪表板管理栏会覆盖菜单。我想在登录时为菜单创建一个不同的类,而不是在我注销时。
代码:
if ( direction === 'down' ) {
$('#main-header').addClass( 'et-fixed-header' );
} else {
$('#main-header').removeClass( 'et-fixed-header' );
}
我想在那里插入一个“if(is_user_logged_in())”语句来改变类输出,但我真的不太了解javascript,如果它与php一起玩得很好。有没有人知道我需要做些什么来使这项工作?谢谢大家!
答案 0 :(得分:1)
如果这不是AJAX驱动的登录系统,只需打开您的header.php
文件并执行以下操作
$the_class = is_user_logged_in() ? 'logged-in-class' : 'logged-out-class';
然后找到您的main-header
并执行所需的操作。
<header id="main-header" class="<?php echo $the_class;">
如果它是一个ajax驱动的登录系统,你需要了解如何使用wordpress'add_action
,但这是一个完全不同的问题的答案。
答案 1 :(得分:0)
在需要时向所需的php函数发出ajax请求。您可以使用各种JS库的Ajax功能,如jQuery,YUI等。
答案 2 :(得分:0)
PHP是一种服务器端语言(很可能是生成Javascript)。 Javascript在浏览器中。
简短的回答是“你不能轻易地从JS调用PHP”。
答案 3 :(得分:0)
如果用户已登录,则从您的javascript中识别的简单方法是使用其状态填充javascript变量。在主题的header.php中,添加:
<script type="text/javascript">
var is_logged_in = <?php echo json_encode(is_user_logged_in()) ?>;
</script>
然后,在其他地方的javascript中,您可以使用:
if (is_logged_in) {
//....
}
答案 4 :(得分:0)
如果你在php文件中编写内联javascript,你可以这样做:
<?php // some php code ?>
<script type="text/javascript">
<?php if ( is_user_logged_in() ) { ?>
// Place some javascript here
<?php } else { ?>
// Place some javascript here
<?php ?>
</script>
<?php // some php code ?>