2

現在ログインしている WordPress 3.2.4 ユーザーの表示名を PhpFreeChat 2.0.4 に渡す必要があります。これを達成するためのルートは、PhpFreeChat フック機能を使用して WordPress ユーザーの現在のユーザー名を提供することのようです。

私の PhpFreeChat config.local.php には次のものがあります。

<?php
    $GLOBALS['pfc_hooks']['pfc.before.auth'][5] = function ($app, $req, $res) {
    return function ($hr) use ($app, $req, $res) {
        $username = "";
        foreach($_COOKIE as $key => $value) {
            if(preg_match('@^wordpress_logged_in_@', $key)) {
                $cookie = explode('|', $_COOKIE[$key]);
                $username = $cookie[0];
            }
        }
        $hr->login = $username;
       };
};

私が読んだことから、これは、現在ログインしている WordPress ユーザーのユーザー名を、起動時に PhpFreeChat に渡す必要があります。

チャットにユーザー名が表示されないため、これは機能していないようです。

Cookie 解析コードだけで .php ページを作成すると、値得られます。

誰でも他のアプローチについてアドバイスできますか? 代わりに、WordPress テンプレート内から PhpFreeChat にユーザー名を渡す方法はありますか?

4

2 に答える 2

2

phpfreechat-2.0.5 以降、pfc.before.auth フックがリファクタリングされたため、コードを次のように変更する必要があります (return $username末尾の に注意してください)。

<?php
  $GLOBALS['pfc_hooks']['pfc.before.auth'][5] = function ($app, $req, $res) {
    return function () use ($app, $req, $res) {
      $username = '';
      foreach ($_COOKIE as $key => $value) {
        if (preg_match('@^wordpress_logged_in_@', $key)) {
            $cookie = explode('|', $_COOKIE[$key]);
            $username = $cookie[0];
        }
      }
      return $username;
    };
  };
于 2012-11-10T18:39:44.930 に答える
1

コードには、実際には閉じ括弧がありませんでした )。

コード自体は正常に動作します。他の人に役立つかもしれないので、ここで質問を残します。

于 2012-10-30T14:51:58.617 に答える