我有这行代码:<?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>
但它没有按预期工作。可能是因为它没有正确地抓住$bp->displayed_user->id
部分。我该怎么做?
由于
答案 0 :(得分:3)
<?php global $bp; query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) : ?>
在单引号字符串中,变量不会被展开。请参阅此处的文档:http://php.net/manual/en/language.types.string.php
答案 1 :(得分: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()) :
?>
答案 2 :(得分:1)
它不起作用,因为它将'author=$bp->displayed_user->id'
视为字符串而不是内联变量的内容。 (这是使用单引号和双引号之间的主要区别。请阅读PHP strings手册页以获取更多信息。)
要解决此问题,请尝试:
query_posts('author=' . $bp->displayed_user->id);
或
query_posts("author={$bp->displayed_user->id}");
那就是说,我个人推荐第一种方法,因为它更明确地发生了什么。