我如何在JavaScript中使用PHP函数?

时间:2014-01-08 01:04:50

标签: javascript php wordpress

情况: 我正在建立一个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一起玩得很好。有没有人知道我需要做些什么来使这项工作?谢谢大家!

5 个答案:

答案 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 ?>