0

ここでは、このコードを使用してMinecraftサーバーから情報を取得しています。静的な.phpファイルを使用して期待どおりに動作しましたが、WordPressのローカルコピーに移動した後、次のエラーが発生します。

Fatal error: Call to a member function GetPlayers() on a non-object in C:\...\home.php on line 125

私はすべてを正しく動かしたとかなり確信しています。125行目には、次のコードスニペットがあります。

<div class="online group container">
      <h2> Who's online </h2>
          <?php if( ( $Players = $Query->GetPlayers( ) ) !== false ): ?>
          <?php foreach( $Players as $Player ): ?>
          <div class="player">                      
            <span class="p"  title="<?php echo htmlspecialchars( $Player ); ?>" data-player="<?php echo htmlspecialchars( $Player ); ?>">☺&lt;/span>
          </div><!-- /.player -->

これは、doctypeの前にheader.phpでPHPクラスを呼び出した方法です。

<?php

  define( 'MQ_SERVER_ADDR', '108.170.3.138:25643' );
  define( 'MQ_SERVER_PORT', 25643 );
  define( 'MQ_TIMEOUT', 1 );

  require bloginfo('template_url') . 'inc/avatars/MinecraftQuery.class.php';

  $Timer = MicroTime( true );
  $Query = new MinecraftQuery( );

  try
  {
    $Query->Connect( MQ_SERVER_ADDR, MQ_SERVER_PORT, MQ_TIMEOUT );
  }
  catch( MinecraftQueryException $e )
  {
    $Error = $e->getMessage();
   echo 'error. <br>'. $Error;
  }

?>

WordPressを使わなくてもうまく機能するので奇妙ですが、移動すると壊れてしまいました。私は何が間違っているのですか?

4

1 に答える 1

1

クエリを返す関数を作成します

function.php

function get_MQ_Query() {
  define( 'MQ_SERVER_ADDR', '108.170.3.138:25643' );
  define( 'MQ_SERVER_PORT', 25643 );
  define( 'MQ_TIMEOUT', 1 );

  require bloginfo('template_url') . 'inc/avatars/MinecraftQuery.class.php';

  $Timer = MicroTime( true );
  $Query = new MinecraftQuery( );

  try
  {
    $Query->Connect( MQ_SERVER_ADDR, MQ_SERVER_PORT, MQ_TIMEOUT );
  }
  catch( MinecraftQueryException $e )
  {
    $Error = $e->getMessage();
   echo 'error. <br>'. $Error;
  }
  return $Query;
}

home.php

$Query = get_MQ_Query();
?><div class="online group container">
  <h2> Who's online </h2>
于 2012-05-25T12:47:14.360 に答える