0

Wordpress + Buddypressアドオンを使用して、PHPに次のものがあります。

$blogusers = get_users('role=s2member_level1&number=5');
foreach ($blogusers as $user) {
  $username = str_replace('"', '',$user->user_nicename);
  $fullname = str_replace('"', '',bp_profile_field_data( array( 'user_id'=>$user->ID,'field'=>'name' ) ));
  $category = str_replace('"', '',bp_profile_field_data( array( 'user_id'=>$user->ID, 'field'=>'category' ) ));
  echo '<div style="float:left; width:100px; height:100px;">';
  echo '<h3><a href="members/' . $username . '">' . $fullname .  '</a></h3>';
  echo '<strong>Camp Type: </strong>' . $category . '<br />';
  echo '</div>';
}

$fullname 変数と $category 変数は float:left 要素の前にぶつかりますが、$username 変数はそのまま残ります。これは、すべての変数がレンダリングされることになっている方法です。

すなわち:

<div class="page" id="blog-latest" role="main">
<div style="width:500px;height:100px;position:relative;">
Frank GoreType 4<div style="float:left; width:100px; height:100px;"><h3><a href="members/fgore"></a></h3><strong>Camp Type: </strong><br /></div>
</div>

これら 2 つの変数が echo ステートメントから除外されている理由の手がかりはありますか?

4

2 に答える 2

0

bp_profile_field_dataと関係があることがわかりました。これは、コアがデータを取得するために使用する関数です。開発者にとってより使いやすいメソッドであるget_bp_profile_field_dataの方が、はるかに優れた方法でした。すべての文字列が適切にフォーマットされています。ただし、知識を共有していただきありがとうございます。ありがとう!

于 2013-03-14T09:08:27.480 に答える
0

これは、php の echo コンストラクトが連結を処理する方法に関係しています。私にはまったく意味がありませんが、連結が発生すると、一時変数を開いて結合を実行し、結果を出力するようです。

その構文を使用する場合は、echo ステートメントでピリオドをコンマに置き換えます。Echo はカンマ区切りの値を個別のステートメントとして扱い、受け取った順にエコーします。

さらに、わずかに高速ですが、数百万回のエコー ステートメントあたり 1 秒程度しかかかりません。:)

私の推奨する方法は、html 文字列を作成し、論理ブロックごとに 1 回エコーすることです。

$echo = '<div style="float:left; width:100px; height:100px;">'
      . '<h3><a href="members/' . $username . '">' . $fullname .  '</a></h3>'
      . '<strong>Camp Type: </strong>' . $category . '<br />'
      . '</div>';
echo $echo;
于 2013-03-14T02:55:48.760 に答える