0

次のコード行があります<?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>が、期待どおりに動作しません。おそらく、$bp->displayed_user->id部品を正しくつかんでいないためです。どうすればいいのですか?

ありがとう

4

3 に答える 3

3
<?php global $bp; query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) : ?>

一重引用符で囲まれた文字列では、変数は展開されません。こちらのドキュメントを参照してください: http://php.net/manual/en/language.types.string.php

于 2011-02-05T14:29:46.660 に答える
1

一重引用符を使用すると、PHP は変数値をフェッチしません。一重引用符を使用する代わりに、二重引用符を使用できます。

<?php 
    global $bp; 
    query_posts( "author={$bp->displayed_user->id}" ); if (have_posts()) : 
?>

またはこのように(私はそれがより良いと思います):

<?php 
    global $bp; 
    query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) :  
?>
于 2011-02-05T14:30:53.883 に答える
1

'author=$bp->displayed_user->id'変数の内容をインライン化するのではなく、文字列として扱っているため、機能していません。(これが、一重引用符と二重引用符の主な違いです。詳細については、PHP文字列のマニュアル ページを参照してください。)

これを修正するには、次のいずれかを試してください。

query_posts('author=' . $bp->displayed_user->id);

また

query_posts("author={$bp->displayed_user->id}");

とはいえ、何が起こっているのかがより明確になるため、個人的には最初のアプローチをお勧めします。

于 2011-02-05T14:31:07.660 に答える