次のコード行があります<?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>
が、期待どおりに動作しません。おそらく、$bp->displayed_user->id
部品を正しくつかんでいないためです。どうすればいいのですか?
ありがとう
次のコード行があります<?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>
が、期待どおりに動作しません。おそらく、$bp->displayed_user->id
部品を正しくつかんでいないためです。どうすればいいのですか?
ありがとう
<?php global $bp; query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) : ?>
一重引用符で囲まれた文字列では、変数は展開されません。こちらのドキュメントを参照してください: http://php.net/manual/en/language.types.string.php
一重引用符を使用すると、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()) :
?>
'author=$bp->displayed_user->id'
変数の内容をインライン化するのではなく、文字列として扱っているため、機能していません。(これが、一重引用符と二重引用符の主な違いです。詳細については、PHP文字列のマニュアル ページを参照してください。)
これを修正するには、次のいずれかを試してください。
query_posts('author=' . $bp->displayed_user->id);
また
query_posts("author={$bp->displayed_user->id}");
とはいえ、何が起こっているのかがより明確になるため、個人的には最初のアプローチをお勧めします。