Wordpress - 如何更改用户登录后显示的用户名的颜色?

时间:2013-01-30 12:31:54

标签: css wordpress login

当用户登录时,WP-Members说:您以“用户名”登录。如何在CSS中引用此用户名以更改其颜色?

2 个答案:

答案 0 :(得分:0)

在您的主题文件中:

<?php

if (is_user_logged_in()) {
    ?>
    <p class="loggedin">You are logged in as "username".</p>
    <?php
} else {
    ?>
    <p class="loggedout">You are logged in as "username".</p>
    <?php
}

?>

CSS

p.loggedin {
    color: green;
}

p.loggedout {
    color: red;
}

答案 1 :(得分:0)

这样做的方法是过滤它。登录状态的侧边栏有一个过滤器挂钩 - wpmem_sidebar_status。侧边栏状态的HTML字符串将传递给过滤器。那就是这样的:

<p>You are logged in as username<br />
<a href="http://logoutlink">click here to log out</a>

因此,如果您想将一些CSS应用于用户名来设置样式,则需要定义一些内容。您需要做的是将用户名包装在span标记中。但你怎么能这样做?

str_replace将对特定字符串或字符串数​​组进行搜索和替换。因此,我们可以在用户名之前用文本加上替换开始跨度包装器来替换文本。我们可以将<br />标记替换为结束范围标记加上 <br />标记。

add_filter( 'wpmem_sidebar_status', 'my_sidebar_status' );

function my_sidebar_status( $string ) {

    /** The original pieces **/
    $old = array(
        'You are logged in as',
        '<br />',
    );

    /** The replacements **/
    $new = array(
        'You are logged in as <span class="my_class">',
        '</span><br />',
    );

    /** Do the search/replace **/
    $new_string = str_replace( $old, $new, $string );

    /** Return the filtered result **/
    return $new_string;
}

执行替换的此过滤器将导致侧边栏状态输出为:

<p>You are logged in as <span class="my_class">username</span><br />
<a href="http://logoutlink">click here to log out</a>

然后你可以将一些CSS应用到.my_class类

.my_class {
  font-weight: bold;
  color: red;
}