我正在尝试在某些情况下隐藏导航菜单项。具体来说,如果用户已登录并已经注册了其产品栏代码,我想隐藏“寄存器套件”链接(其中具有“ AC-Regkit”类)。

以下是我在wp_head()之前添加到header.php的头部部分的php;。

/* If User is loggied in, hide LOG IN and SIGN UP links */
<?php if ( is_user_logged_in() ) { ?>
    <style>
        .ac-login { display: none; }
        .ac-signup { display: none; }
    </style>

    /*If user has not yet registered their DNA Test Kit, show link */
    <?php
        $current_user = wp_get_current_user();
        $user_id = $current_user;
        $key = 'redeem_code';
        $single = true;
        $ac-barcode = wp_get_user_meta( $user_id, $key, $single);
        if ( $ac-barcode = '' ) { ?>
        <style>
            .ac-regkit { display: inline; font-weight: bold; }
            .ac-regkit a { color: red; }
        </style>
    <?php }; ?>
<?php } ?>

这是我遇到的错误:

服务器错误该网站在检索时遇到错误 http://athleticode.com/. 。它可能会用于维护或不正确配置。

我不是PHP专家,所以我敢肯定这是语法错误或类似的问题 - 并且可能有更好的方法来实现这一结果 - 因此,任何帮助都将不胜感激。

有帮助吗?

解决方案

我将有2个菜单,只有在用户符合条件时才显示第二个菜单。然后,使用CSS显示两种菜单,就像它的菜单一样。

我认为这是最简单的方法。而且您的好处是这些物品实际上不存在,而不仅仅是隐藏。

其他提示

wp_get_current_user() 返回完整的用户 目的, ,所以你的下一行不应该是 $user_id = $current_user, , 但 $user_id = $current_user->ID.

我知道你不能启用 WP_DEBUG 在实时站点上,这可能是您在出现问题时收到“通用”错误消息的原因,但是您是否查看了将PHP错误消息写入日志文件的选项?这样,用户将不会看到错误,但是您可以。在不看到错误消息的情况下开发几乎是不可能的。

如果这是您的真实代码,而不仅仅是一个示例,请替换为以下代码。顺便提一句: <!-- this is a html comment --><?php /* this is */ # like this or // that a php comment ?>.

<?php 
// Note: I moved all php-Comments inside the php tags. 
/* If User is loggied in, hide LOG IN and SIGN UP links */
if ( is_user_logged_in() ) 
{ 
?>
    <style>
        .ac-login { display: none; }
        .ac-signup { display: none; }
    </style>

    <?php
    /* If user has not yet registered their DNA Test Kit, show link */
        $current_user = get_currentuserinfo(); // THIS IS THE FUNCTION YOU NEED
        $user_id = $current_user->ID;
        $key = 'redeem_code';
        $single = true;
        $ac_barcode = wp_get_user_meta( $user_id, $key, $single);
        if ( empty( $ac_barcode ) ) { // YOU COULD TRY if ( ! $ac-barcode ) TOO
?>
        <style>
            .ac-regkit { display: inline; font-weight: bold; }
            .ac-regkit a { color: red; }
        </style>
<?php 
    } // removed ";"
}?>
许可以下: CC-BY-SA归因
scroll top