我有这行代码:<?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}");
也就是说,我个人推荐第一种方法,因为它更明确地发生了什么。