WP函数和短代码每次都不会触发

时间:2016-02-15 15:30:20

标签: wordpress function

我在尝试运行顶级自定义管理栏时遇到问题。所以基本上当有人退出时他们会收到"登录"。登录后,他们会收到受保护的链接。这个问题有时是有效的,有时它并不适用。这不是每隔一段时间的问题,而是随机的时间。有时在手机上,有时在桌面上。我找不到任何一致性来确定问题。我的问题是,有没有人看到过这种情况?有什么我可以做的事情优先吗?如果指向任何问题,则它位于头文件中。

  

的functions.php

function personal_message_when_logged_in() {

if ( is_user_logged_in() ) :
    global $wpdb;
    $current_user = wp_get_current_user();

    if (current_user_can( 'manage_options' )) {
        $is_admin = "<a href='" . esc_url( home_url( 'wp-admin' ) ) . "'>| Admin</a>";
    }else 
    $is_admin = "";
    echo '<li class="firstSpaceInline legacySansBold loggedTab"><span class="welcomeMessage">Hi, ' . $current_user->user_nicename . '! |  <a href="' . esc_url( home_url( 'my-menu' ) ) . '">My Menu<em></em></a></span> </li><li class="logOut"><span><a href="' . wp_logout_url( get_permalink() ) . '">Log Out</a> '.$is_admin.'</span></li>';

    else :
        echo '<li class="logInlink"><a href="' . esc_url( home_url( 'bv-login' ) ) . '"> <span class="glyphicon glyphicon-lock"></span> <span class="glyphicon-lock-text">Log In</span></a></li>';

    endif;
}//if user logged
add_shortcode('personal_message_when_logged_in', 'personal_message_when_logged_in');
  

的header.php

<?php echo do_shortcode('[personal_message_when_logged_in]'); ?>

1 个答案:

答案 0 :(得分:0)

这里有一些问题,但你需要做的主要改变是返回内容而不是直接输出内容。

function personal_message_when_logged_in() {
    if ( is_user_logged_in() ) {
        $current_user = wp_get_current_user();
        $admin        = '';

        if ( current_user_can( 'manage_options' ) ) {
            $admin = "<a href='" . admin_url() . "'>| Admin</a>";
        }

        $output = '<li class="firstSpaceInline legacySansBold loggedTab"><span class="welcomeMessage">Hi, ' . $current_user->user_nicename . '! |  <a href="' . esc_url( home_url( '/my-menu' ) ) . '">My Menu<em></em></a></span> </li><li class="logOut"><span><a href="' . wp_logout_url( get_permalink() ) . '">Log Out</a> ' . $admin . '</span></li>';

    } else {
        $output = '<li class="logInlink"><a href="' . esc_url( home_url( '/bv-login' ) ) . '"> <span class="glyphicon glyphicon-lock"></span> <span class="glyphicon-lock-text">Log In</span></a></li>';
    }

    return $output;
}