从unctions.php获取变量的值并进行调试

时间:2019-08-29 作者:Mike

我试图检查函数中获得的变量。php用于调试目的。我通过执行shortcode来获取当前登录的用户,定义了一个变量$current\\u user。然后我使用if语句来验证是否有当前登录的用户,在这种情况下,应该应用函数前面定义的CSS样式。它当前不起作用,因此我正在尝试研究$current\\u用户变量,但我尝试过的所有变体都不起作用,包括error\\u log。

功能。php(片段):

add_shortcode(\'show_css_code_conditionally\', \'show_css_code_conditionally_fn\');
function show_css_code_conditionally_fn($atts) {

ob_start(); ?>
//   CSS code to show the button conditionally
<style type="text/css">

.special-button {
    display: block !important;
}

</style> <?php

    $CSS_output = ob_get_clean();

    $current_user = do_shortcode(\'[wpv-current-user]\');
    error_log($current_user);
    echo($current_user);
    echo do_shortocde(\'[wpv-current-user]\');
    print \'zzzy\';
    ?><pre><?php var_dump( $current_user ); echo do_shortocde(\'[wpv-current-user]\'); print \'zzzy\'; ?></pre><?php

    if ($current_user) {
        // this is confirmed that the user is logged in
        return $CSS_output;
    }    
}

1 个回复
SO网友:Mike Baxter

如果您的快捷码“wpv current user”中没有任何内容,您将无法在任何输出中看到任何内容。

您应该使用内置函数wp_get_current_user() 为了这个。

只要小心Codex page 警告这可能需要在使用“init”钩子或在“init”钩子之后激发的操作中调用。

我已经修改了您的代码,因此您应该可以从error\\u log()和放置短代码中获得结果[show_css_code_conditionally] 在帖子/页面中。

add_shortcode(\'show_css_code_conditionally\', \'show_css_code_conditionally_fn\');
function show_css_code_conditionally_fn($atts) {

    ob_start(); ?>
    <!---   CSS code to show the button conditionally   -->
    <style type="text/css">

    .special-button {
        display: block !important;
    }

    </style> 
<?php
    $CSS_output = ob_get_clean();

    $current_user = wp_get_current_user();
    error_log($current_user->ID!==0 ? $current_user->user_email : \'User not logged in\',0);        

<?php
    if ($current_user->ID!==0) {
        // this is confirmed that the user is logged in
        return $CSS_output;
    }  else {
        return "\\n<!--  No valid user currently logged in  -->\\n\\n";
    }
}
因为我不知道短代码是什么[wpv-current-user] 指的是,我只是把它漏掉了。通常,你会do_shortcodes() 执行所有适用的短代码,尤其是当您已经在短代码函数中时。

相关推荐

How to debug full RAM memory?

我们的网站一次又一次地宕机。问题总是一样的。内存不足。主机的答案总是一样的:购买更多的RAM。最终也可能需要这样做。但我首先想通过代码来追踪到底是什么导致了完整的内存。我们的网站没有多少访问者。因此,我真的怀疑有多少访问者会导致大量连接和RAM内存问题。感觉更像是有一些使用了大量记忆的脚本。我们每隔一分钟就有几个cron作业在运行。所以看看他们使用了多少内存会很有趣。因此,我想看到的是,所有不同的脚本/连接/页面加载使用了多少内存,以及当网站关闭时,同时有多少访问者/页面加载。那么,如何跟踪php内存使用